From 38e18c01018b2cd5e534cd92072880ec1f0d041f Mon Sep 17 00:00:00 2001
From: Jacob Brown
Date: Fri, 11 Oct 2024 12:16:11 +0100
Subject: [PATCH 01/29] Distinguish unstyled card CSS
---
.../pages/ExamSpecificationsDirectory.tsx | 10 +++----
src/app/components/site/cs/HomepageCS.tsx | 4 +--
src/scss/cs/cards.scss | 30 +++----------------
3 files changed, 11 insertions(+), 33 deletions(-)
diff --git a/src/app/components/pages/ExamSpecificationsDirectory.tsx b/src/app/components/pages/ExamSpecificationsDirectory.tsx
index 6a0e45c7de..d2a9252457 100644
--- a/src/app/components/pages/ExamSpecificationsDirectory.tsx
+++ b/src/app/components/pages/ExamSpecificationsDirectory.tsx
@@ -11,7 +11,7 @@ export const ExamSpecificationsDirectory = () => {
-
+
Ada CS
@@ -31,7 +31,7 @@ export const ExamSpecificationsDirectory = () => {
-
+
England
@@ -52,7 +52,7 @@ export const ExamSpecificationsDirectory = () => {
-
+
Scotland
@@ -73,7 +73,7 @@ export const ExamSpecificationsDirectory = () => {
-
+
Wales
@@ -92,4 +92,4 @@ export const ExamSpecificationsDirectory = () => {
;
-};
\ No newline at end of file
+};
diff --git a/src/app/components/site/cs/HomepageCS.tsx b/src/app/components/site/cs/HomepageCS.tsx
index d58422202c..07ae380881 100644
--- a/src/app/components/site/cs/HomepageCS.tsx
+++ b/src/app/components/site/cs/HomepageCS.tsx
@@ -120,7 +120,7 @@ export const HomepageCS = () => {
-
+
Core
@@ -136,7 +136,7 @@ export const HomepageCS = () => {
-
+
Advanced
diff --git a/src/scss/cs/cards.scss b/src/scss/cs/cards.scss
index de979a6278..06cd5af9db 100644
--- a/src/scss/cs/cards.scss
+++ b/src/scss/cs/cards.scss
@@ -28,40 +28,18 @@ $cards-per-line: (
@each $name, $breakpoint in $grid-breakpoints {
@if (map-has-key($cards-per-line, $name)) {
@include media-breakpoint-up($name) {
- .card-deck:not(.homepage-cards) .cs-card {
+ .card-deck .cs-card {
flex: 0 0 calc(#{math.percentage(math.div(1, map-get($cards-per-line, $name)))} - #{$grid-gutter-width});
}
}
}
}
-// number of cards per line for each breakpoint
-$homepage-cards-per-line: (
- xs: 1,
- lg: 2
-);
-@each $name, $breakpoint in $grid-breakpoints {
- @if (map-has-key($homepage-cards-per-line, $name)) {
- @include media-breakpoint-up($name) {
- .homepage-cards .cs-card {
- flex: 0 0 calc(#{math.percentage(math.div(1, map-get($homepage-cards-per-line, $name)))} - #{$grid-gutter-width});
- }
- }
- }
-}
-
-.homepage-cards {
- .cs-card {
- @extend .mt-4;
- @extend .my-lg-0;
- }
-}
-
.card-container {
padding-bottom: $grid-gutter-width;
}
-.cs-card, .news-card {
+.cs-card-plain, .news-card {
position: relative;
border-radius: 15px;
display: inline-block;
@@ -106,7 +84,7 @@ $homepage-cards-per-line: (
}
}
-.cs-card, .news-card, .board-card {
+.cs-card-plain, .news-card, .board-card {
// This is to make sure that the "footers" of multiple cards line up nicely
&::after {
@extend .mb-5;
@@ -129,4 +107,4 @@ $homepage-cards-per-line: (
.featured-news-item {
color: $cs-black;
-}
\ No newline at end of file
+}
From 9f90d32ca38be7e3b1001ec44a8a8af072334b79 Mon Sep 17 00:00:00 2001
From: Jacob Brown
Date: Fri, 11 Oct 2024 16:43:37 +0100
Subject: [PATCH 02/29] Implement AdaCard component as per designs
---
src/app/components/content/IsaacCard.tsx | 33 ++++++------
src/app/components/content/IsaacCardDeck.tsx | 23 ++++++---
src/app/components/elements/cards/AdaCard.tsx | 41 +++++++++++++++
src/scss/cs/cards.scss | 50 +++++++++++++++++++
4 files changed, 123 insertions(+), 24 deletions(-)
create mode 100644 src/app/components/elements/cards/AdaCard.tsx
diff --git a/src/app/components/content/IsaacCard.tsx b/src/app/components/content/IsaacCard.tsx
index 55b2904b3d..f303094555 100644
--- a/src/app/components/content/IsaacCard.tsx
+++ b/src/app/components/content/IsaacCard.tsx
@@ -1,17 +1,18 @@
import React from "react";
-import {Button, Card, CardBody, CardFooter, CardImg, CardTitle, Col, Row} from "reactstrap";
+import {Card, CardBody, CardTitle, Col, ContainerProps, Row} from "reactstrap";
import classNames from "classnames";
import {apiHelper, isAppLink, siteSpecific} from "../../services";
import {Link} from "react-router-dom";
import {IsaacCardDTO} from "../../../IsaacApiTypes";
+import { AdaCard } from "../elements/cards/AdaCard";
-interface IsaacCardProps {
+interface IsaacCardProps extends ContainerProps {
doc: IsaacCardDTO;
imageClassName?: string;
className?: string;
}
-const PhysicsCard = ({doc, imageClassName, className}: IsaacCardProps) => {
+const PhysicsContentCard = ({doc, imageClassName, className, ...rest}: IsaacCardProps) => {
const {title, subtitle, image, clickUrl, disabled, verticalContent} = doc;
const classes = classNames(className + " menu-card", {"disabled": disabled, "isaac-card-vertical": verticalContent});
const imgSrc = image?.src && apiHelper.determineImageUrl(image.src);
@@ -57,21 +58,19 @@ const PhysicsCard = ({doc, imageClassName, className}: IsaacCardProps) => {
;
};
-const AdaCard = ({doc, imageClassName}: IsaacCardProps) => {
+const AdaContentCard = ({doc, imageClassName, ...rest}: IsaacCardProps) => {
const {title, subtitle, image, clickUrl, disabled, verticalContent} = doc;
const imageSrc = image?.src && apiHelper.determineImageUrl(image.src);
- return
- {image && }
-
- {title}
-
-
- {subtitle}
-
- {clickUrl && isAppLink(clickUrl) &&
-
- }
- ;
+
+ return ;
};
-export const IsaacCard = siteSpecific(PhysicsCard, AdaCard);
+export const IsaacCard = siteSpecific(PhysicsContentCard, AdaContentCard);
diff --git a/src/app/components/content/IsaacCardDeck.tsx b/src/app/components/content/IsaacCardDeck.tsx
index e507c1b908..cc73ff796b 100644
--- a/src/app/components/content/IsaacCardDeck.tsx
+++ b/src/app/components/content/IsaacCardDeck.tsx
@@ -3,7 +3,7 @@ import {IsaacCard} from "./IsaacCard";
import {IsaacCardDeckDTO} from "../../../IsaacApiTypes";
import {Col, Container, Row} from "reactstrap";
import classNames from "classnames";
-import {isAda, isPhy} from "../../services";
+import {isAda, isPhy, siteSpecific} from "../../services";
const MAX_CARDS_IN_CONTENT_DEFINED_DECK = 3;
@@ -20,10 +20,19 @@ export const IsaacCardDeck = ({doc, className, containerClassName}: IsaacCardDec
{doc.title}
}
-
- {doc?.cards?.map((props, i) =>
-
- )}
-
+ {
+ siteSpecific(
+
+ {/* TODO: move Containers into Cards for Physics */}
+ {doc?.cards?.map((props, i) =>
+
+ )}
+
+ ,
+
+ {doc?.cards?.map((props, i) => )}
+
+ )
+ }
;
-};
\ No newline at end of file
+};
diff --git a/src/app/components/elements/cards/AdaCard.tsx b/src/app/components/elements/cards/AdaCard.tsx
new file mode 100644
index 0000000000..eb356f595b
--- /dev/null
+++ b/src/app/components/elements/cards/AdaCard.tsx
@@ -0,0 +1,41 @@
+import classNames from "classnames";
+import React from "react";
+import {Button, Card, CardBody, CardFooter, CardImg, CardTitle, Container, ContainerProps} from "reactstrap";
+import { isAppLink } from "../../../services";
+import { Link } from "react-router-dom";
+
+export interface AdaCardContentProps {
+ title: string;
+ image: {src: string, altText?: string};
+ bodyText: string;
+ clickUrl?: string;
+ buttonText?: string;
+ disabled?: boolean;
+ buttonStyle?: "outline" | "link";
+}
+
+export interface AdaCardProps extends ContainerProps {
+ card: AdaCardContentProps;
+}
+
+export const AdaCard = ({card, ...props}: AdaCardProps) => {
+ const {title, image, bodyText, clickUrl} = card;
+ return
+
+ {image && }
+
+
+ {title}
+
+
+ {bodyText}
+
+ {clickUrl && isAppLink(clickUrl) &&
+
+ }
+
+
+ ;
+};
diff --git a/src/scss/cs/cards.scss b/src/scss/cs/cards.scss
index 06cd5af9db..92ef90873b 100644
--- a/src/scss/cs/cards.scss
+++ b/src/scss/cs/cards.scss
@@ -39,6 +39,56 @@ $cards-per-line: (
padding-bottom: $grid-gutter-width;
}
+.cs-card-container {
+ container: cs-card / inline-size;
+}
+
+.cs-card {
+ box-shadow: 0px 0px 2px 1px $shadow-08;
+ border-radius: 1rem 1rem 3rem;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+
+ > img {
+ aspect-ratio: 16/9;
+ border-radius: 1rem 1rem 0 0;
+ }
+
+ .card-footer {
+ background-color: transparent !important;
+
+ .btn-link::after {
+ content: "";
+ display: inline-flex;
+ background: url('/assets/common/icons/chevron_up_white.svg') no-repeat center center;
+ // TODO: colour in $dark-pink-300
+ filter: invert(1);
+ rotate: 90deg;
+ margin-top: -3px;
+ margin-left: 10px;
+ width: 15px;
+ height: 15px;
+ }
+ }
+}
+
+@container cs-card (min-width: 560px) {
+ .cs-card {
+ flex-direction: row-reverse;
+
+ > div {
+ width: 50%;
+ }
+
+ > img {
+ width: 50%;
+ border-radius: 0 1rem 3rem 0;
+ object-fit: cover;
+ }
+ }
+}
+
.cs-card-plain, .news-card {
position: relative;
border-radius: 15px;
From e27cadee1bb1ee07c37d06cf5a7d73ae32b718d5 Mon Sep 17 00:00:00 2001
From: Jacob Brown
Date: Mon, 14 Oct 2024 12:12:44 +0100
Subject: [PATCH 03/29] Add IconCard component
---
.../components/elements/cards/IconCard.tsx | 45 ++++++++++++++++
src/scss/cs/cards.scss | 52 +++++++++++++++++--
2 files changed, 94 insertions(+), 3 deletions(-)
create mode 100644 src/app/components/elements/cards/IconCard.tsx
diff --git a/src/app/components/elements/cards/IconCard.tsx b/src/app/components/elements/cards/IconCard.tsx
new file mode 100644
index 0000000000..fbeba5ad59
--- /dev/null
+++ b/src/app/components/elements/cards/IconCard.tsx
@@ -0,0 +1,45 @@
+import classNames from "classnames";
+import React from "react";
+import {Button, Card, CardBody, CardFooter, CardTitle, Container, ContainerProps} from "reactstrap";
+import { isAppLink } from "../../../services";
+import { Link } from "react-router-dom";
+
+export interface IconCardContentProps {
+ title: string;
+ icon: {src: string, altText?: string};
+ bodyText: string;
+ tag?: string;
+ clickUrl?: string;
+ buttonText?: string;
+ disabled?: boolean;
+ buttonStyle?: "outline" | "link";
+}
+
+export interface IconCardProps extends ContainerProps {
+ card: IconCardContentProps;
+}
+
+export const IconCard = ({card, ...props}: IconCardProps) => {
+ const {title, icon, bodyText, tag, clickUrl, buttonText, disabled, buttonStyle} = card;
+ return
+
+
+ {tag &&
+ {tag}
+
}
+
+
+ {title}
+
+
+ {bodyText}
+
+ {clickUrl && isAppLink(clickUrl) &&
+
+ }
+
+
+ ;
+};
diff --git a/src/scss/cs/cards.scss b/src/scss/cs/cards.scss
index 92ef90873b..5386876d1f 100644
--- a/src/scss/cs/cards.scss
+++ b/src/scss/cs/cards.scss
@@ -56,8 +56,6 @@ $cards-per-line: (
}
.card-footer {
- background-color: transparent !important;
-
.btn-link::after {
content: "";
display: inline-flex;
@@ -89,6 +87,49 @@ $cards-per-line: (
}
}
+.icon-card {
+ box-shadow: 0px 0px 2px 1px $shadow-08;
+ border-radius: 1rem;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+
+ > img {
+ width: 25px;
+ height: 25px;
+ margin-top: 2rem;
+ margin-left: 1.5rem;
+ }
+
+ .icon-card-tag {
+ position: absolute;
+ background-color: $pink-400;
+ height: 44px;
+ margin-top: -22px;
+ right: 2rem;
+ padding: 0.8rem 1rem;
+ border-radius: 2rem;
+ }
+}
+
+.icon-card-container {
+ container: icon-card / inline-size;
+}
+
+@container icon-card (min-width: 480px) {
+ .icon-card {
+ flex-direction: row;
+
+ > .icon-card-main-content > * {
+ padding-left: 1rem !important;
+
+ h3 {
+ margin-top: 8px;
+ }
+ }
+ }
+}
+
.cs-card-plain, .news-card {
position: relative;
border-radius: 15px;
@@ -144,7 +185,6 @@ $cards-per-line: (
position: relative;
}
.card-footer {
- background-color: transparent !important;
position: absolute;
bottom: 0;
width: 100%;
@@ -155,6 +195,12 @@ $cards-per-line: (
}
}
+.cs-card, .cs-card-plain, .icon-card, .news-card, .board-card {
+ .card-footer {
+ background-color: transparent !important;
+ }
+}
+
.featured-news-item {
color: $cs-black;
}
From 705a8d0d6e1f5a8626d4663273f1ef0a515287a5 Mon Sep 17 00:00:00 2001
From: Jacob Brown
Date: Mon, 14 Oct 2024 13:44:38 +0100
Subject: [PATCH 04/29] Add mixin for recolouring SVGs; apply to link buttons
---
src/scss/common/_mixins.scss | 7 ++++++-
src/scss/cs/cards.scss | 30 +++++++++++++++---------------
2 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/src/scss/common/_mixins.scss b/src/scss/common/_mixins.scss
index 10ccb607fd..f9ec7867d0 100644
--- a/src/scss/common/_mixins.scss
+++ b/src/scss/common/_mixins.scss
@@ -259,4 +259,9 @@ $breakpoints: (
@mixin aspect-ratio($width, $height) {
aspect-ratio: calc($width / $height);
-}
\ No newline at end of file
+}
+
+@mixin svg-color($image, $color) {
+ mask: $image no-repeat center center;
+ background-color: $color;
+}
diff --git a/src/scss/cs/cards.scss b/src/scss/cs/cards.scss
index 5386876d1f..222c4262fe 100644
--- a/src/scss/cs/cards.scss
+++ b/src/scss/cs/cards.scss
@@ -54,21 +54,6 @@ $cards-per-line: (
aspect-ratio: 16/9;
border-radius: 1rem 1rem 0 0;
}
-
- .card-footer {
- .btn-link::after {
- content: "";
- display: inline-flex;
- background: url('/assets/common/icons/chevron_up_white.svg') no-repeat center center;
- // TODO: colour in $dark-pink-300
- filter: invert(1);
- rotate: 90deg;
- margin-top: -3px;
- margin-left: 10px;
- width: 15px;
- height: 15px;
- }
- }
}
@container cs-card (min-width: 560px) {
@@ -130,6 +115,21 @@ $cards-per-line: (
}
}
+.cs-card, .icon-card {
+ .card-footer {
+ .btn-link::after {
+ content: "";
+ display: inline-flex;
+ width: 6px;
+ height: 8px;
+ margin-top: -3px;
+ margin-left: 10px;
+ @include svg-color(url('/assets/common/icons/chevron_right.svg'), $dark-pink-300);
+ mask-size: cover;
+ }
+ }
+}
+
.cs-card-plain, .news-card {
position: relative;
border-radius: 15px;
From fe3915e18d099ee78b7a81c3f61a00f97d0e98d1 Mon Sep 17 00:00:00 2001
From: Jacob Brown
Date: Mon, 14 Oct 2024 15:01:06 +0100
Subject: [PATCH 05/29] Add ColumnSlice component
---
src/app/components/elements/layout/ColumnSlice.tsx | 10 ++++++++++
src/scss/cs/cards.scss | 1 +
2 files changed, 11 insertions(+)
create mode 100644 src/app/components/elements/layout/ColumnSlice.tsx
diff --git a/src/app/components/elements/layout/ColumnSlice.tsx b/src/app/components/elements/layout/ColumnSlice.tsx
new file mode 100644
index 0000000000..f2dac2b109
--- /dev/null
+++ b/src/app/components/elements/layout/ColumnSlice.tsx
@@ -0,0 +1,10 @@
+import classNames from "classnames";
+import React from "react";
+import { Row, RowProps } from "reactstrap";
+
+export const ColumnSlice = ({...props}: RowProps) => {
+ const numChildren = Math.min(React.Children.count(props.children), 4);
+ return
+ {props.children}
+
;
+};
diff --git a/src/scss/cs/cards.scss b/src/scss/cs/cards.scss
index 222c4262fe..9d9c65147b 100644
--- a/src/scss/cs/cards.scss
+++ b/src/scss/cs/cards.scss
@@ -99,6 +99,7 @@ $cards-per-line: (
.icon-card-container {
container: icon-card / inline-size;
+ max-width: unset;
}
@container icon-card (min-width: 480px) {
From 3f3f9d1c5e11d750060d6786dbb9ab25f932cf2e Mon Sep 17 00:00:00 2001
From: Jacob Brown
Date: Mon, 14 Oct 2024 16:28:57 +0100
Subject: [PATCH 06/29] Add base routes for landing pages
---
src/app/components/pages/StudentResources.tsx | 5 +++++
src/app/components/pages/TeacherResources.tsx | 5 +++++
src/app/components/site/cs/RoutesCS.tsx | 10 +++++-----
3 files changed, 15 insertions(+), 5 deletions(-)
create mode 100644 src/app/components/pages/StudentResources.tsx
create mode 100644 src/app/components/pages/TeacherResources.tsx
diff --git a/src/app/components/pages/StudentResources.tsx b/src/app/components/pages/StudentResources.tsx
new file mode 100644
index 0000000000..4865572234
--- /dev/null
+++ b/src/app/components/pages/StudentResources.tsx
@@ -0,0 +1,5 @@
+import React from "react";
+
+export const StudentResources = () => {
+ return <>>;
+};
diff --git a/src/app/components/pages/TeacherResources.tsx b/src/app/components/pages/TeacherResources.tsx
new file mode 100644
index 0000000000..a8a63ced7e
--- /dev/null
+++ b/src/app/components/pages/TeacherResources.tsx
@@ -0,0 +1,5 @@
+import React from "react";
+
+export const TeacherResources = () => {
+ return <>>;
+};
diff --git a/src/app/components/site/cs/RoutesCS.tsx b/src/app/components/site/cs/RoutesCS.tsx
index 52f238b91f..31e2fc6b54 100644
--- a/src/app/components/site/cs/RoutesCS.tsx
+++ b/src/app/components/site/cs/RoutesCS.tsx
@@ -30,6 +30,8 @@ import {Events} from "../../pages/Events";
import {RedirectToEvent} from "../../navigation/RedirectToEvent";
import { OnlineCourses } from "../../pages/OnlineCourses";
import {ExamSpecificationsDirectory} from "../../pages/ExamSpecificationsDirectory";
+import { StudentResources } from "../../pages/StudentResources";
+import { TeacherResources } from "../../pages/TeacherResources";
const Equality = lazy(() => import('../../pages/Equality'));
const EventDetails = lazy(() => import('../../pages/EventDetails'));
@@ -50,11 +52,9 @@ export const RoutesCS = [
,
- // Student and teacher
- // ,
- // ,
- ,
- ,
+ // Student and teacher resources
+ ,
+ ,
// Assignments
,
From f0a3aa53d9c1fd3de93b9d1b7adb7085f73fb0a3 Mon Sep 17 00:00:00 2001
From: Jacob Brown
Date: Tue, 15 Oct 2024 09:46:04 +0100
Subject: [PATCH 07/29] Upload photos for use on Resources pages
---
public/assets/cs/decor/learner-1.png | Bin 0 -> 197324 bytes
public/assets/cs/decor/learner-2.png | Bin 0 -> 183146 bytes
public/assets/cs/decor/progress.png | Bin 0 -> 14807 bytes
.../assets/cs/decor/question-finder-clean.png | Bin 0 -> 4513 bytes
public/assets/cs/decor/questions.png | Bin 0 -> 8336 bytes
public/assets/cs/decor/swirls.png | Bin 0 -> 631192 bytes
public/assets/cs/decor/teacher-1.png | Bin 0 -> 163545 bytes
public/assets/cs/icons/book.svg | 3 +++
8 files changed, 3 insertions(+)
create mode 100644 public/assets/cs/decor/learner-1.png
create mode 100644 public/assets/cs/decor/learner-2.png
create mode 100644 public/assets/cs/decor/progress.png
create mode 100644 public/assets/cs/decor/question-finder-clean.png
create mode 100644 public/assets/cs/decor/questions.png
create mode 100644 public/assets/cs/decor/swirls.png
create mode 100644 public/assets/cs/decor/teacher-1.png
create mode 100644 public/assets/cs/icons/book.svg
diff --git a/public/assets/cs/decor/learner-1.png b/public/assets/cs/decor/learner-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d119a31f95ca9f621e79eda413d5a4948c51baff
GIT binary patch
literal 197324
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