diff --git a/src/components/Exercises/FillBlanks.tsx b/src/components/Exercises/FillBlanks.tsx index 20515e7d..d8b5f00b 100644 --- a/src/components/Exercises/FillBlanks.tsx +++ b/src/components/Exercises/FillBlanks.tsx @@ -31,7 +31,7 @@ function WordsDrawer({words, isOpen, blankId, previouslySelectedWord, onCancel, isOpen ? "visible opacity-100" : "invisible opacity-0", )}>
-
{blankId}
+
{blankId}
Choose the correct word:
@@ -41,8 +41,8 @@ function WordsDrawer({words, isOpen, blankId, previouslySelectedWord, onCancel, onClick={() => setSelectedWord((prev) => (prev === word ? undefined : word))} className={clsx( "rounded-full py-3 text-center transition duration-300 ease-in-out", - selectedWord === word ? "text-white bg-mti-green-light" : "bg-mti-green-ultralight", - !isDisabled && "hover:text-white hover:bg-mti-green", + selectedWord === word ? "text-white bg-mti-purple-light" : "bg-mti-purple-ultralight", + !isDisabled && "hover:text-white hover:bg-mti-purple", "disabled:cursor-not-allowed disabled:text-mti-gray-dim", )} disabled={isDisabled}> @@ -101,10 +101,10 @@ export default function FillBlanks({ return (
@@ -128,14 +128,14 @@ export default function Speaking({id, title, text, type, prompts, onNext, onBack setIsRecording(true); resumeRecording(); }} - className="text-mti-green-light w-8 h-8 cursor-pointer" + className="text-mti-purple-light w-8 h-8 cursor-pointer" /> { setIsRecording(false); stopRecording(); }} - className="text-mti-green-light w-8 h-8 cursor-pointer" + className="text-mti-purple-light w-8 h-8 cursor-pointer" /> diff --git a/src/components/Low/AudioPlayer.tsx b/src/components/Low/AudioPlayer.tsx index 6c6f249f..c2e3183d 100644 --- a/src/components/Low/AudioPlayer.tsx +++ b/src/components/Low/AudioPlayer.tsx @@ -7,7 +7,7 @@ import ProgressBar from "./ProgressBar"; interface Props { src: string; - color: "blue" | "orange" | "green" | Module; + color: "red" | "rose" | "purple" | Module; autoPlay?: boolean; disabled?: boolean; onEnd?: () => void; diff --git a/src/components/Low/Button.tsx b/src/components/Low/Button.tsx index 337641d8..53c196dc 100644 --- a/src/components/Low/Button.tsx +++ b/src/components/Low/Button.tsx @@ -13,14 +13,14 @@ interface Props { export default function Button({color = "green", variant = "solid", disabled = false, className, children, onClick}: Props) { const colorClassNames: {[key in typeof color]: {[key in typeof variant]: string}} = { green: { - solid: "bg-mti-green-light text-white hover:bg-mti-green disabled:text-mti-green disabled:bg-mti-green-ultralight selection:bg-mti-green-dark", + solid: "bg-mti-purple-light text-white hover:bg-mti-purple disabled:text-mti-purple disabled:bg-mti-purple-ultralight selection:bg-mti-purple-dark", outline: - "bg-transparent text-mti-green-light border border-mti-green-light hover:bg-mti-green-light disabled:text-mti-green disabled:bg-mti-green-ultralight selection:bg-mti-green-dark hover:text-white selection:text-white", + "bg-transparent text-mti-purple-light border border-mti-purple-light hover:bg-mti-purple-light disabled:text-mti-purple disabled:bg-mti-purple-ultralight selection:bg-mti-purple-dark hover:text-white selection:text-white", }, blue: { - solid: "bg-mti-blue-light text-white hover:bg-mti-blue disabled:text-mti-blue disabled:bg-mti-blue-ultralight selection:bg-mti-blue-dark", + solid: "bg-mti-red-light text-white hover:bg-mti-red disabled:text-mti-red disabled:bg-mti-red-ultralight selection:bg-mti-red-dark", outline: - "bg-transparent text-mti-blue-light border border-mti-blue-light hover:bg-mti-blue-light disabled:text-mti-blue disabled:bg-mti-blue-ultralight selection:bg-mti-blue-dark hover:text-white selection:text-white", + "bg-transparent text-mti-red-light border border-mti-red-light hover:bg-mti-red-light disabled:text-mti-red disabled:bg-mti-red-ultralight selection:bg-mti-red-dark hover:text-white selection:text-white", }, orange: { solid: "bg-mti-orange-light text-white hover:bg-mti-orange disabled:text-mti-orange disabled:bg-mti-orange-ultralight selection:bg-mti-orange-dark", diff --git a/src/components/Low/ProgressBar.tsx b/src/components/Low/ProgressBar.tsx index f9bbb005..c1b447db 100644 --- a/src/components/Low/ProgressBar.tsx +++ b/src/components/Low/ProgressBar.tsx @@ -4,16 +4,16 @@ import clsx from "clsx"; interface Props { label: string; percentage: number; - color: "blue" | "orange" | "green" | Module; + color: "red" | "rose" | "purple" | Module; useColor?: boolean; className?: string; } export default function ProgressBar({label, percentage, color, useColor = false, className}: Props) { const progressColorClass: {[key in typeof color]: string} = { - blue: "bg-mti-blue-light", - orange: "bg-mti-orange-light", - green: "bg-mti-green-light", + red: "bg-mti-red-light", + rose: "bg-mti-rose-light", + purple: "bg-mti-purple-light", reading: "bg-ielts-reading", listening: "bg-ielts-listening", writing: "bg-ielts-writing", diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index 8b80faba..b2f7e2c5 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -24,8 +24,8 @@ const Nav = ({Icon, label, path, keyPath}: NavProps) => ( {label} diff --git a/src/components/Solutions/FillBlanks.tsx b/src/components/Solutions/FillBlanks.tsx index a1607bf9..795c98f7 100644 --- a/src/components/Solutions/FillBlanks.tsx +++ b/src/components/Solutions/FillBlanks.tsx @@ -18,7 +18,7 @@ export default function FillBlanksSolutions({prompt, solutions, text, userSoluti return ( @@ -29,8 +29,8 @@ export default function FillBlanksSolutions({prompt, solutions, text, userSoluti return ( @@ -50,8 +50,8 @@ export default function FillBlanksSolutions({prompt, solutions, text, userSoluti @@ -84,11 +84,11 @@ export default function FillBlanksSolutions({prompt, solutions, text, userSoluti
-
+
Correct
-
+
Unanswered
diff --git a/src/components/Solutions/MatchSentences.tsx b/src/components/Solutions/MatchSentences.tsx index 5354da13..e3f67d6d 100644 --- a/src/components/Solutions/MatchSentences.tsx +++ b/src/components/Solutions/MatchSentences.tsx @@ -31,8 +31,8 @@ export default function MatchSentencesSolutions({options, prompt, sentences, use className={clsx( "w-8 h-8 rounded-full z-10 text-white", "transition duration-300 ease-in-out", - !userSolutions.find((x) => x.question === id) && "!bg-mti-blue", - userSolutions.find((x) => x.question === id)?.option === solution && "bg-mti-green", + !userSolutions.find((x) => x.question === id) && "!bg-mti-red", + userSolutions.find((x) => x.question === id)?.option === solution && "bg-mti-purple", userSolutions.find((x) => x.question === id)?.option !== solution && "bg-mti-orange", )}> {id} @@ -46,7 +46,7 @@ export default function MatchSentencesSolutions({options, prompt, sentences, use
-
Correct +
Correct
-
Unanswered +
Unanswered
Wrong diff --git a/src/components/Solutions/MultipleChoice.tsx b/src/components/Solutions/MultipleChoice.tsx index 34603a5d..1ccf20c8 100644 --- a/src/components/Solutions/MultipleChoice.tsx +++ b/src/components/Solutions/MultipleChoice.tsx @@ -14,11 +14,11 @@ function Question({ }: MultipleChoiceQuestion & {userSolution: string | undefined; onSelectOption?: (option: string) => void; showSolution?: boolean}) { const optionColor = (option: string) => { if (option === solution && !userSolution) { - return "!border-mti-blue-light !text-mti-blue-light"; + return "!border-mti-red-light !text-mti-red-light"; } if (option === solution) { - return "!border-mti-green-light !text-mti-green-light"; + return "!border-mti-purple-light !text-mti-purple-light"; } return userSolution === option ? "!border-mti-orange-light !text-mti-orange-light" : ""; @@ -87,11 +87,11 @@ export default function MultipleChoice({prompt, questions, userSolutions, onNext
-
+
Correct
-
+
Unanswered
diff --git a/src/components/Solutions/WriteBlanks.tsx b/src/components/Solutions/WriteBlanks.tsx index 8999f5e7..52de41db 100644 --- a/src/components/Solutions/WriteBlanks.tsx +++ b/src/components/Solutions/WriteBlanks.tsx @@ -39,10 +39,10 @@ function Blank({ const getSolutionStyling = () => { if (!userSolution) { - return "bg-mti-blue-ultralight text-mti-blue-light"; + return "bg-mti-red-ultralight text-mti-red-light"; } - return "bg-mti-green-ultralight text-mti-green-light"; + return "bg-mti-purple-ultralight text-mti-purple-light"; }; return ( @@ -112,11 +112,11 @@ export default function WriteBlanksSolutions({
-
+
Correct
-
+
Unanswered
diff --git a/src/exams/Finish.tsx b/src/exams/Finish.tsx index b2344fbb..9c5d9a75 100644 --- a/src/exams/Finish.tsx +++ b/src/exams/Finish.tsx @@ -139,18 +139,18 @@ export default function Finish({user, scores, modules, isLoading, onViewResults}
-
+
- + {(((selectedScore.total - selectedScore.missing) / selectedScore.total) * 100).toFixed(0)}% Completion
-
+
- {selectedScore.correct.toString().padStart(2, "0")} + {selectedScore.correct.toString().padStart(2, "0")} Correct
@@ -175,7 +175,7 @@ export default function Finish({user, scores, modules, isLoading, onViewResults}
Play Again @@ -183,7 +183,7 @@ export default function Finish({user, scores, modules, isLoading, onViewResults}
Review Answers diff --git a/src/exams/Selection.tsx b/src/exams/Selection.tsx index 5d1c6c68..d0086d88 100644 --- a/src/exams/Selection.tsx +++ b/src/exams/Selection.tsx @@ -40,14 +40,14 @@ export default function Selection({user, onStart, disableSelection = false}: Pro
@@ -104,7 +104,7 @@ export default function Selection({user, onStart, disableSelection = false}: Pro onClick={!disableSelection ? () => toggleModule("reading") : undefined} className={clsx( "relative w-fit max-w-xs flex flex-col items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-2 pt-12 cursor-pointer", - selectedModules.includes("reading") || disableSelection ? "border-mti-green-light" : "border-mti-gray-platinum", + selectedModules.includes("reading") || disableSelection ? "border-mti-purple-light" : "border-mti-gray-platinum", )}>
@@ -116,13 +116,15 @@ export default function Selection({user, onStart, disableSelection = false}: Pro {!selectedModules.includes("reading") && !disableSelection && (
)} - {(selectedModules.includes("reading") || disableSelection) && } + {(selectedModules.includes("reading") || disableSelection) && ( + + )}
toggleModule("listening") : undefined} className={clsx( "relative w-fit max-w-xs flex flex-col items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-2 pt-12 cursor-pointer", - selectedModules.includes("listening") || disableSelection ? "border-mti-green-light" : "border-mti-gray-platinum", + selectedModules.includes("listening") || disableSelection ? "border-mti-purple-light" : "border-mti-gray-platinum", )}>
@@ -135,14 +137,14 @@ export default function Selection({user, onStart, disableSelection = false}: Pro
)} {(selectedModules.includes("listening") || disableSelection) && ( - + )}
toggleModule("writing") : undefined} className={clsx( "relative w-fit max-w-xs flex flex-col items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-2 pt-12 cursor-pointer", - selectedModules.includes("writing") || disableSelection ? "border-mti-green-light" : "border-mti-gray-platinum", + selectedModules.includes("writing") || disableSelection ? "border-mti-purple-light" : "border-mti-gray-platinum", )}>
@@ -154,13 +156,15 @@ export default function Selection({user, onStart, disableSelection = false}: Pro {!selectedModules.includes("writing") && !disableSelection && (
)} - {(selectedModules.includes("writing") || disableSelection) && } + {(selectedModules.includes("writing") || disableSelection) && ( + + )}
toggleModule("speaking") : undefined} className={clsx( "relative w-fit max-w-xs flex flex-col items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-2 pt-12 cursor-pointer", - selectedModules.includes("speaking") || disableSelection ? "border-mti-green-light" : "border-mti-gray-platinum", + selectedModules.includes("speaking") || disableSelection ? "border-mti-purple-light" : "border-mti-gray-platinum", )}>
@@ -173,7 +177,7 @@ export default function Selection({user, onStart, disableSelection = false}: Pro
)} {(selectedModules.includes("speaking") || disableSelection) && ( - + )}
diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 6dbcb916..aaee2290 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -90,20 +90,20 @@ export default function Home() {
- +
{totalExams(stats)} @@ -112,7 +112,7 @@ export default function Home() {
- +
{stats.length} @@ -121,7 +121,7 @@ export default function Home() {
- +
{averageScore(stats)}% @@ -158,7 +158,7 @@ export default function Home() {
Remember my password
- + Forgot Password?
@@ -94,7 +94,7 @@ export default function Login() { Don't have an account?{" "} - + Sign up diff --git a/src/pages/profile.tsx b/src/pages/profile.tsx index 7aeb214e..163f8d6a 100644 --- a/src/pages/profile.tsx +++ b/src/pages/profile.tsx @@ -119,7 +119,7 @@ export default function Home() { alt={user.name} className="aspect-square h-48 w-48 rounded-full drop-shadow-xl self-end" /> - Change picture + Change picture
diff --git a/src/pages/record.tsx b/src/pages/record.tsx index 89549ac5..1d8441db 100644 --- a/src/pages/record.tsx +++ b/src/pages/record.tsx @@ -162,8 +162,8 @@ export default function History({user}: {user: User}) { key={timestamp} className={clsx( "flex flex-col gap-4 border border-mti-gray-platinum p-4 cursor-pointer rounded-xl transition ease-in-out duration-300", - correct / total >= 0.7 && "hover:border-mti-green", - correct / total >= 0.3 && correct / total < 0.7 && "hover:border-mti-blue", + correct / total >= 0.7 && "hover:border-mti-purple", + correct / total >= 0.3 && correct / total < 0.7 && "hover:border-mti-red", correct / total < 0.3 && "hover:border-mti-orange", )} onClick={selectExam} @@ -172,8 +172,8 @@ export default function History({user}: {user: User}) { {formatTimestamp(timestamp)} = 0.7 && "text-mti-green", - correct / total >= 0.3 && correct / total < 0.7 && "text-mti-blue", + correct / total >= 0.7 && "text-mti-purple", + correct / total >= 0.3 && correct / total < 0.7 && "text-mti-red", correct / total < 0.3 && "text-mti-orange", )}> Level{" "} @@ -236,27 +236,27 @@ export default function History({user}: {user: User}) {
- + Sign in instead diff --git a/src/pages/stats.tsx b/src/pages/stats.tsx index 6db485c0..d486f6bc 100644 --- a/src/pages/stats.tsx +++ b/src/pages/stats.tsx @@ -79,20 +79,20 @@ export default function Stats() {
- +
{Object.keys(groupBySession(stats)).length} @@ -101,7 +101,7 @@ export default function Stats() {
- +
{stats.length} @@ -110,7 +110,7 @@ export default function Stats() {
- +
{averageScore(stats)}% diff --git a/src/pages/test.tsx b/src/pages/test.tsx index 43b0f5d5..ee9a5c64 100644 --- a/src/pages/test.tsx +++ b/src/pages/test.tsx @@ -118,7 +118,7 @@ export default function Page() { setIsRecording(false); stopRecording(); }} - className="text-mti-green-light w-8 h-8 cursor-pointer" + className="text-mti-purple-light w-8 h-8 cursor-pointer" />
@@ -143,14 +143,14 @@ export default function Page() { setIsRecording(true); resumeRecording(); }} - className="text-mti-green-light w-8 h-8 cursor-pointer" + className="text-mti-purple-light w-8 h-8 cursor-pointer" /> { setIsRecording(false); stopRecording(); }} - className="text-mti-green-light w-8 h-8 cursor-pointer" + className="text-mti-purple-light w-8 h-8 cursor-pointer" />
diff --git a/tailwind.config.js b/tailwind.config.js index e50594bf..a9771b87 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -7,6 +7,9 @@ module.exports = { mti: { orange: {DEFAULT: "#FF6000", dark: "#cc4402", light: "#ff790a", ultralight: "#ffdaa5"}, green: {DEFAULT: "#307912", dark: "#2a6014", light: "#3d9f11", ultralight: "#c6edaf"}, + purple: {DEFAULT: "#6A5FB1", dark: "#6354A1", light: "#7872BF", ultralight: "#D5D9F0"}, + red: {DEFAULT: "#BB4747", dark: "#9D3838", light: "#CC5454", ultralight: "#F5D3D3"}, + rose: {DEFAULT: "#D6352C", dark: "#B42921", light: "#EB5C54", ultralight: "#FCCFCC"}, blue: {DEFAULT: "#0696ff", dark: "#007ff8", light: "#1eb3ff", ultralight: "#b5edff"}, white: {DEFAULT: "#ffffff", alt: "#FDFDFD"}, gray: {