diff --git a/.gitignore b/.gitignore
index 41b9cef8..38eb8297 100644
--- a/.gitignore
+++ b/.gitignore
@@ -224,7 +224,7 @@ typings/
# NPM Built
main.js
main.js.LICENSE.txt
-style.min.css
+main.css
# Mac OS X dir files
.DS_Store
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000..5309d53f
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,2 @@
+# ignore Django templates
+**/templates/**/*.html
diff --git a/csm_web/frontend/src/components/App.tsx b/csm_web/frontend/src/components/App.tsx
index c5da011a..167ace2d 100644
--- a/csm_web/frontend/src/components/App.tsx
+++ b/csm_web/frontend/src/components/App.tsx
@@ -10,9 +10,14 @@ import Policies from "./Policies";
import { Resources } from "./resource_aggregation/Resources";
import Section from "./section/Section";
+// Images
import LogoNoText from "../../static/frontend/img/logo_no_text.svg";
import LogOutIcon from "../../static/frontend/img/log_out.svg";
+// Styles
+import "../css/header.scss";
+import "../css/home.scss";
+
interface ErrorType {
message: string;
stack: string;
@@ -113,26 +118,30 @@ function Header(): React.ReactElement {
return (
-
-
-
-
- Scheduler
-
-
- Resources
-
- {activeMatcherRoles["COORDINATOR"].size > 0 || activeMatcherRoles["MENTOR"].size > 0 ? (
-
- Matcher
+
+
+
+
+
+ Scheduler
+
+
+ Resources
- ) : null}
-
- Policies
-
-
-
-
+ {activeMatcherRoles["COORDINATOR"].size > 0 || activeMatcherRoles["MENTOR"].size > 0 ? (
+
+ Matcher
+
+ ) : null}
+
+
);
}
diff --git a/csm_web/frontend/src/components/CourseMenu.tsx b/csm_web/frontend/src/components/CourseMenu.tsx
index 4d7d6bf8..aa121ad2 100644
--- a/csm_web/frontend/src/components/CourseMenu.tsx
+++ b/csm_web/frontend/src/components/CourseMenu.tsx
@@ -8,6 +8,9 @@ import LoadingSpinner from "./LoadingSpinner";
import { DateTime } from "luxon";
import { DEFAULT_LONG_LOCALE_OPTIONS, DEFAULT_TIMEZONE } from "../utils/datetime";
+// Styles
+import "../css/course-menu.scss";
+
const CourseMenu = () => {
const { data: jsonCourses, isSuccess: coursesLoaded } = useCourses();
const { data: jsonUserInfo, isSuccess: userInfoLoaded } = useUserInfo();
@@ -147,16 +150,27 @@ const CourseMenuContent = ({
let sidebar = null;
if (hasRestrictedCourses) {
+ /**
+ * Helper to get the current tab class
+ */
+ const getTabClass = (expected: CourseMenuSidebarTabs) => {
+ if (selectedTab === expected) {
+ return "tab active";
+ } else {
+ return "tab";
+ }
+ };
+
sidebar = (
-
+