Merge pull request #375 from Jones8683/main

Add tutorial room to home page and begin cleaning up some stuff
This commit is contained in:
Seth Burkart
2026-02-01 10:45:58 +11:00
committed by GitHub
13 changed files with 75 additions and 273 deletions
-1
View File
@@ -116,7 +116,6 @@ body {
} }
.cke_panel_listItem > a { .cke_panel_listItem > a {
&:hover { &:hover {
background: #3d3d3e !important; background: #3d3d3e !important;
} }
+59 -255
View File
@@ -39,7 +39,6 @@ html {
font-family: Rubik, sans-serif !important; font-family: Rubik, sans-serif !important;
} }
/* Ensure native select dropdowns are readable on Windows */
select option { select option {
background-color: #ffffff !important; background-color: #ffffff !important;
color: #111827 !important; color: #111827 !important;
@@ -49,7 +48,6 @@ select option {
color: #ffffff !important; color: #ffffff !important;
} }
/* Consistent rounded corners for selects */
select { select {
border-radius: 8px !important; border-radius: 8px !important;
} }
@@ -158,8 +156,7 @@ select {
#main { #main {
color: var(--text-primary); color: var(--text-primary);
position: relative; position: relative;
}
#main {
> .timetablepage { > .timetablepage {
> .quickbar { > .quickbar {
.gutter { .gutter {
@@ -276,10 +273,8 @@ select {
grid-template-columns: repeat(autofit, minmax(200px, 400px)) !important; grid-template-columns: repeat(autofit, minmax(200px, 400px)) !important;
background: unset; background: unset;
// TODO: Make this only opacity 0 when the animation will be played to stop a flash of the original
> section { > section {
border-radius: 16px !important; border-radius: 16px !important;
//opacity: 0;
button { button {
border-radius: 16px; border-radius: 16px;
@@ -319,7 +314,6 @@ select {
> .dashlet { > .dashlet {
background: var(--background-primary); background: var(--background-primary);
border-radius: 16px; border-radius: 16px;
//opacity: 0;
&[data-ident="timetable"] { &[data-ident="timetable"] {
grid-row: span 2 / auto !important; grid-row: span 2 / auto !important;
@@ -339,9 +333,6 @@ select {
.dashlet-summary-homework > .summary > .subject > .item { .dashlet-summary-homework > .summary > .subject > .item {
color: var(--text-primary) !important; color: var(--text-primary) !important;
} }
.dashlet-summary-homework > .summary > .subject > .item {
color: var(--text-primary) !important;
}
.dashlet-notes > ul { .dashlet-notes > ul {
background: var(--background-primary); background: var(--background-primary);
} }
@@ -406,7 +397,6 @@ ul.magicDelete > li.deleting {
white-space: nowrap; white-space: nowrap;
} }
/* Allow long course/assessment names in the sidebar to wrap and break safely */
#menu li > label, #menu li > label,
#menu section > label { #menu section > label {
white-space: normal; white-space: normal;
@@ -434,6 +424,11 @@ ul.magicDelete > li.deleting {
[class*="notifications__items___"] { [class*="notifications__items___"] {
-ms-overflow-style: none !important; -ms-overflow-style: none !important;
scrollbar-width: none !important; scrollbar-width: none !important;
border-bottom: none;
height: 540px;
display: flex;
flex-direction: column;
&::-webkit-scrollbar { &::-webkit-scrollbar {
display: none !important; display: none !important;
} }
@@ -495,7 +490,6 @@ ul.magicDelete > li.deleting {
html { html {
background: var(--better-main) !important; background: var(--better-main) !important;
} }
/* Messages */
.menuShown .content .anyoneSelect .listWrapper .list:has(.item) { .menuShown .content .anyoneSelect .listWrapper .list:has(.item) {
width: 100% !important; width: 100% !important;
} }
@@ -514,7 +508,6 @@ ol:has([class*="MessageList__avatar___"] svg) {
transition-duration: 150ms !important; transition-duration: 150ms !important;
transition-delay: 0ms !important; transition-delay: 0ms !important;
} }
/* Direct Message Menu */
.wrapper .cke_contents iframe { .wrapper .cke_contents iframe {
box-sizing: border-box; box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
@@ -523,7 +516,6 @@ ol:has([class*="MessageList__avatar___"] svg) {
} }
.wrapper .cke_contents::-webkit-scrollbar-thumb { .wrapper .cke_contents::-webkit-scrollbar-thumb {
background-color: #969696 !important; background-color: #969696 !important;
/* color of the scroll thumb */
} }
.content .footer { .content .footer {
margin-top: 5px; margin-top: 5px;
@@ -728,13 +720,7 @@ td.colourBar {
#container #content .uiButton { #container #content .uiButton {
border-radius: 16px; border-radius: 16px;
} }
.dark {
#toolbar button.toggled,
#toolbar button.depressed {
background: #333333;
color: white;
}
}
#toolbar button.toggled, #toolbar button.toggled,
#toolbar button.depressed { #toolbar button.depressed {
background: #f3f3f3; background: #f3f3f3;
@@ -969,6 +955,14 @@ html.transparencyEffects
color: white !important; color: white !important;
} }
.notices-container { .notices-container {
width: 100%;
max-height: 60em;
background: var(--better-main);
display: flex;
flex-direction: column;
-webkit-box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
input { input {
border: none; border: none;
color: var(--text-color) !important; color: var(--text-color) !important;
@@ -984,6 +978,7 @@ html.transparencyEffects
} }
} }
} }
#main > .notices > .notice > .label, #main > .notices > .notice > .label,
#main > .notices > .notice > .staff, #main > .notices > .notice > .staff,
#main > .notices > .notice > h2 { #main > .notices > .notice > h2 {
@@ -1196,15 +1191,6 @@ html.transparencyEffects
} }
} }
} }
.notices-container {
width: 100%;
max-height: 60em;
background: var(--better-main);
display: flex;
flex-direction: column;
-webkit-box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}
.notice-container { .notice-container {
background: var(--better-main); background: var(--better-main);
width: 100%; width: 100%;
@@ -1353,10 +1339,6 @@ html.transparencyEffects
.clickable { .clickable {
cursor: pointer; cursor: pointer;
} }
.day:hover {
background: var(--background);
transition: 200ms;
}
.day h2 { .day h2 {
margin: 0; margin: 0;
@@ -1365,7 +1347,6 @@ html.transparencyEffects
font-size: 20px !important; font-size: 20px !important;
font-weight: 500; font-weight: 500;
min-height: 46px; min-height: 46px;
/* Let the title expand naturally but clamp to 2 lines to avoid overlap */
height: auto; height: auto;
line-height: 1.2; line-height: 1.2;
display: -webkit-box; display: -webkit-box;
@@ -1407,9 +1388,6 @@ html.transparencyEffects
.waitWindow { .waitWindow {
background: var(--better-main); background: var(--better-main);
} }
.modaliser {
background: var(--better-main);
}
.alert-container { .alert-container {
height: 35em; height: 35em;
width: 22em; width: 22em;
@@ -1442,8 +1420,6 @@ html.transparencyEffects
background: white; background: white;
z-index: 21 !important; z-index: 21 !important;
color: var(--better-sub); color: var(--better-sub);
}
[class*="notifications__notifications___"] > button {
padding: 8px; padding: 8px;
} }
.legacy-root button > svg, .legacy-root button > svg,
@@ -1464,10 +1440,6 @@ html.transparencyEffects
.legacy-root button::after { .legacy-root button::after {
background: black !important; background: black !important;
} }
.legacy-root button::after {
background: var(--better-main);
}
.legacy-root button:not([disabled]):focus { .legacy-root button:not([disabled]):focus {
border-color: var(--better-sub); border-color: var(--better-sub);
} }
@@ -1513,12 +1485,6 @@ html.transparencyEffects
border: 1px solid white; border: 1px solid white;
} }
} }
[class*="notifications__items___"] {
border-bottom: none;
height: 540px;
display: flex;
flex-direction: column;
}
[class*="notifications__details___"] { [class*="notifications__details___"] {
max-width: 80%; max-width: 80%;
overflow: clip; overflow: clip;
@@ -1550,7 +1516,6 @@ html.transparencyEffects
display: none !important; display: none !important;
} }
[class*="MessageList__MessageList___"] ol [class*="Button__Button___"]::before { [class*="MessageList__MessageList___"] ol [class*="Button__Button___"]::before {
// plus icon
content: ""; content: "";
font-size: 12px; font-size: 12px;
margin-right: 4px; margin-right: 4px;
@@ -1672,8 +1637,7 @@ iframe.userHTML {
} }
[class*="Thermoscore__Thermoscore___"] { [class*="Thermoscore__Thermoscore___"] {
background-image: unset; background-image: unset;
background: var(--auto-background); background-color: var(--auto-background);
border-radius: 8px;
} }
.dark [class*="Thermoscore__Thermoscore___"] { .dark [class*="Thermoscore__Thermoscore___"] {
border: 2px solid rgba(255, 255, 255, 0.3); border: 2px solid rgba(255, 255, 255, 0.3);
@@ -1711,6 +1675,9 @@ iframe.userHTML {
box-shadow: 0 0 40px 0px rgba(0, 0, 0, 0.05); box-shadow: 0 0 40px 0px rgba(0, 0, 0, 0.05);
overflow-y: scroll; overflow-y: scroll;
height: 100%; height: 100%;
width: 400px;
background: var(--background-primary);
position: relative;
.navigator { .navigator {
padding: 6px !important; padding: 6px !important;
@@ -1838,7 +1805,6 @@ iframe.userHTML {
color: var(--text-primary); color: var(--text-primary);
} }
/* set button(top and bottom of the scrollbar) */
body::-webkit-scrollbar-button { body::-webkit-scrollbar-button {
display: none !important; display: none !important;
} }
@@ -1852,30 +1818,6 @@ ul {
scrollbar-color: #babac0 #fff !important; scrollbar-color: #babac0 #fff !important;
} }
.dark {
body,
div,
ol,
ul {
scrollbar-width: thin;
scrollbar-color: #333 #111 !important;
}
}
.connectedNotificationsWrapper > div > button {
color: var(--text-primary) !important;
height: 45px;
width: 45px;
}
.programmeNavigator {
width: 400px;
background: var(--background-primary);
position: relative;
}
#userActions > .details > .code {
text-transform: initial;
}
div:has(> [class*="AssessmentDetails__AssessmentDetails___"]) { div:has(> [class*="AssessmentDetails__AssessmentDetails___"]) {
padding: 4px; padding: 4px;
} }
@@ -2011,14 +1953,13 @@ div:has(> [class*="AssessmentDetails__AssessmentDetails___"]) {
} }
div.entry.class { div.entry.class {
border-radius: 4px; border-radius: 4px;
}
div.entry.class {
width: 100% !important; width: 100% !important;
} }
div.entry.class[style*="left: 46.5%"] { div.entry.class[style*="left: 46.5%"] {
left: 50% !important; left: 50% !important;
} }
div.entry.class[style*="width: 46.5%"] { div.entry.class[style*="width: 46.5%"] {
width: 50% !important; width: 50% !important;
} }
@@ -2100,6 +2041,22 @@ a.uiFile:not(.rows) {
} }
} }
.dark {
body,
div,
ol,
ul {
scrollbar-width: thin;
scrollbar-color: #333 #111 !important;
}
#toolbar button.toggled,
#toolbar button.depressed {
background: #333333;
color: white;
}
}
.dark .title a.uiFile { .dark .title a.uiFile {
color: #06b4fc !important; color: #06b4fc !important;
} }
@@ -2294,8 +2251,8 @@ div.bar.flat {
.cke_toolbox { .cke_toolbox {
padding: 0 !important; padding: 0 !important;
padding-left: 8px !important; padding-left: 8px !important;
background: unset !important;
gap: 0 8px; gap: 0 8px;
background: var(--better-main);
} }
.cke_toolbar:has(.cke_toolgroup) { .cke_toolbar:has(.cke_toolgroup) {
.cke_combo { .cke_combo {
@@ -2368,7 +2325,6 @@ ul.buttonChecklist,
ul.buttonMenu, ul.buttonMenu,
ul.colourButtonOptions, ul.colourButtonOptions,
ul.uiSplitButtonList, ul.uiSplitButtonList,
ul.buttonMenu,
.contactFormPanel { .contactFormPanel {
background: var(--background-primary) !important; background: var(--background-primary) !important;
border: solid 4px var(--background-primary); border: solid 4px var(--background-primary);
@@ -2440,14 +2396,9 @@ body {
.days { .days {
width: 100%; width: 100%;
} }
.hidden {
display: none;
}
.cke_toolbox {
background: var(--better-main);
}
.modaliser { .modaliser {
display: none; display: none;
background: var(--better-main);
} }
[class*="MessageList__unread___"] { [class*="MessageList__unread___"] {
@@ -2706,16 +2657,16 @@ body {
} }
.big-circle { .big-circle {
margin: -88px; margin: -88px;
animation-timing-function: ease; animation: spin 3s ease infinite;
animation: spin 3s linear infinite; -moz-animation: spin 3s ease infinite;
-moz-animation: spin 3s linear infinite;
} }
.small-circle { .small-circle {
margin: -66px; margin: -66px;
animation-timing-function: ease; animation: spin 3s ease infinite;
animation: spin 3s linear infinite; -moz-animation: spin 3s ease infinite;
-moz-animation: spin 3s linear infinite;
} }
.dark [class*="LabelList__name___"] { .dark [class*="LabelList__name___"] {
text-shadow: 0 0 5px black; text-shadow: 0 0 5px black;
} }
@@ -2757,9 +2708,8 @@ body {
} }
.outer-circle { .outer-circle {
margin: -108px; margin: -108px;
animation-direction: alternate-reverse; animation: spinback 1s linear infinite alternate-reverse;
animation: spinback 1s linear infinite; -moz-animation: spinback 1s linear infinite alternate-reverse;
-moz-animation: spinback 1s linear infinite;
} }
@-moz-keyframes spin { @-moz-keyframes spin {
100% { 100% {
@@ -2790,6 +2740,7 @@ body {
bottom: 20px; bottom: 20px;
} }
#userActions > .details > .code { #userActions > .details > .code {
text-transform: initial;
overflow: visible !important; overflow: visible !important;
} }
.code { .code {
@@ -2901,39 +2852,22 @@ div.day-empty {
border-radius: 5px 0px 0px 5px; border-radius: 5px 0px 0px 5px;
background: var(--item-colour); background: var(--item-colour);
} }
.upcoming-assessment-title {
color: var(--text-primary);
font-size: 10px;
}
.upcoming-assessment { .upcoming-assessment {
border: 2px solid var(--item-colour); border: 2px solid var(--item-colour);
margin: 5px 50px; margin: 5px 50px;
height: 6em; height: 6em;
padding: 0px; padding: 0px;
border-radius: 10px; border-radius: 10px;
}
.upcoming-assessment {
display: flex; display: flex;
} }
.upcoming-date-container {
margin-bottom: 20px;
}
.upcoming-date-title { .upcoming-date-title {
padding: 12px; padding: 12px;
font-size: 20px; font-size: 20px;
} }
.upcoming-details h5 {
text-transform: uppercase;
color: #aaaaaa;
padding: 0px 4px;
}
.upcoming-details p:hover { .upcoming-details p:hover {
cursor: pointer; cursor: pointer;
text-decoration: underline; text-decoration: underline;
} }
.upcoming-special-day {
font-size: 20px;
}
.upcoming-blank { .upcoming-blank {
display: flex; display: flex;
border-bottom: 2px solid #bebebe; border-bottom: 2px solid #bebebe;
@@ -2941,17 +2875,9 @@ div.day-empty {
height: 2em; height: 2em;
padding: 0px; padding: 0px;
} }
.upcoming-blank p {
padding: 0;
margin: 0;
}
.upcoming-tick { .upcoming-tick {
align-self: center; align-self: center;
} }
.upcoming-title {
display: flex;
align-content: space-between;
}
.upcoming-title h2 { .upcoming-title h2 {
width: 100%; width: 100%;
} }
@@ -2981,60 +2907,11 @@ div.day-empty {
align-items: center; align-items: center;
display: flex; display: flex;
} }
/* Hide the browser's default checkbox */
.upcoming-checkbox-container input {
position: absolute;
opacity: 0;
cursor: pointer;
height: 0;
width: 0;
padding: 0;
}
/* Create a custom checkbox */
.upcoming-checkmark {
position: absolute;
top: 0;
left: 0;
height: 15px;
width: 15px;
border: 3px solid var(--item-colour);
border-radius: 5px;
color: var(--text-color);
}
.upcoming-checkbox-container:hover input ~ .upcoming-checkmark {
filter: brightness(0.8);
}
.upcoming-checkbox-container input:checked ~ .upcoming-checkmark {
background: var(--item-colour);
}
.upcoming-checkmark:after {
content: "";
position: absolute;
display: none;
}
/* Show the checkmark when checked */
.upcoming-checkbox-container input:checked ~ .upcoming-checkmark:after {
display: block;
}
/* Style the checkmark/indicator */
.upcoming-checkbox-container .upcoming-checkmark:after {
left: 3.5px;
top: 0px;
width: 5px;
height: 10px;
border: solid white;
border-width: 0 3px 3px 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.upcoming-hiddenassessment { .upcoming-hiddenassessment {
color: #797979; color: #797979;
} }
.calendarEventEditor > .tabset > .item { .calendarEventEditor > .tabset > .item {
border-radius: 0 !important; border-radius: 0 !important;
} }
@@ -3092,9 +2969,6 @@ div.day-empty {
inset 0px 6px 0 var(--item-colour, transparent), inset 0px 6px 0 var(--item-colour, transparent),
inset 0px 40px 50px -40px rgba(0, 0, 0, 0.9); inset 0px 40px 50px -40px rgba(0, 0, 0, 0.9);
} }
.clickable {
cursor: pointer;
}
.day:hover { .day:hover {
background: var(--background-secondary); background: var(--background-secondary);
transition: 200ms; transition: 200ms;
@@ -3125,16 +2999,6 @@ div.day-empty {
font-size: 10px; font-size: 10px;
margin: 0; margin: 0;
} }
.upcoming-assessment {
border: 3px solid var(--item-colour);
margin: 5px 50px;
height: 6em;
padding: 0px;
border-radius: 10px;
}
.upcoming-assessment {
display: flex;
}
.upcoming-date-container { .upcoming-date-container {
margin-bottom: 20px; margin-bottom: 20px;
} }
@@ -3177,33 +3041,6 @@ div.day-empty {
display: flex; display: flex;
align-content: space-between; align-content: space-between;
} }
.upcoming-filters {
display: flex;
height: 26px;
width: 65%;
align-self: center;
align-items: center;
color: var(--text-color);
padding: 5px;
overflow-x: scroll;
overflow-y: hidden;
}
.upcoming-checkbox-container {
position: relative;
padding: none !important;
padding-left: 25px !important;
padding-right: 10px !important;
cursor: pointer;
font-size: 12px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
height: 20px;
align-items: center;
display: flex;
}
/* Hide the browser's default checkbox */
.upcoming-checkbox-container input { .upcoming-checkbox-container input {
position: absolute; position: absolute;
opacity: 0; opacity: 0;
@@ -3212,7 +3049,6 @@ div.day-empty {
width: 0; width: 0;
padding: 0; padding: 0;
} }
/* Create a custom checkbox */
.upcoming-checkmark { .upcoming-checkmark {
position: absolute; position: absolute;
top: 0; top: 0;
@@ -3223,25 +3059,20 @@ div.day-empty {
border-radius: 5px; border-radius: 5px;
color: var(--text-color); color: var(--text-color);
} }
/* On mouse-over, add a grey background color */
.upcoming-checkbox-container:hover input ~ .upcoming-checkmark { .upcoming-checkbox-container:hover input ~ .upcoming-checkmark {
filter: brightness(0.8); filter: brightness(0.8);
} }
/* When the checkbox is checked, add a blue background */
.upcoming-checkbox-container input:checked ~ .upcoming-checkmark { .upcoming-checkbox-container input:checked ~ .upcoming-checkmark {
background: var(--item-colour); background: var(--item-colour);
} }
/* Create the checkmark/indicator (hidden when not checked) */
.upcoming-checkmark:after { .upcoming-checkmark:after {
content: ""; content: "";
position: absolute; position: absolute;
display: none; display: none;
} }
/* Show the checkmark when checked */
.upcoming-checkbox-container input:checked ~ .upcoming-checkmark:after { .upcoming-checkbox-container input:checked ~ .upcoming-checkmark:after {
display: block; display: block;
} }
/* Style the checkmark/indicator */
.upcoming-checkbox-container .upcoming-checkmark:after { .upcoming-checkbox-container .upcoming-checkmark:after {
left: 3.5px; left: 3.5px;
top: 0px; top: 0px;
@@ -3253,9 +3084,6 @@ div.day-empty {
-ms-transform: rotate(45deg); -ms-transform: rotate(45deg);
transform: rotate(45deg); transform: rotate(45deg);
} }
.upcoming-hiddenassessment {
color: #797979;
}
.titlebar { .titlebar {
align-items: center; align-items: center;
transition: 200ms; transition: 200ms;
@@ -3549,7 +3377,6 @@ div.day-empty {
overflow: visible; overflow: visible;
} }
// Auto collapsing alignment toolbar
.cke_toolbar:has(.cke_button__seqta-align-left) { .cke_toolbar:has(.cke_button__seqta-align-left) {
overflow: visible !important; overflow: visible !important;
@@ -3590,13 +3417,11 @@ div.day-empty {
} }
} }
// Button icons
.cke_button_icon { .cke_button_icon {
margin: 0 !important; margin: 0 !important;
} }
} }
// menu background
&:before { &:before {
content: ""; content: "";
position: absolute; position: absolute;
@@ -3614,7 +3439,6 @@ div.day-empty {
transition: all 0.2s ease-out; transition: all 0.2s ease-out;
} }
// Dropdown behavior on hover
&:hover { &:hover {
&:hover:before { &:hover:before {
transform: scale(1); transform: scale(1);
@@ -3625,7 +3449,6 @@ div.day-empty {
visibility: visible; visibility: visible;
transition-delay: 0s; transition-delay: 0s;
// Stack buttons in dropdown with spacing
&:first-child { &:first-child {
transform: translateY(0); transform: translateY(0);
border-top-left-radius: 12px !important; border-top-left-radius: 12px !important;
@@ -3653,7 +3476,6 @@ div.day-empty {
} }
} }
// Add subtle animation when closing dropdown
&:not(:hover) &:not(:hover)
.cke_button:not(.cke_button_on):not( .cke_button:not(.cke_button_on):not(
.cke_button__seqta-align-left:first-child .cke_button__seqta-align-left:first-child
@@ -3677,15 +3499,10 @@ div.day-empty {
scrollbar-width: none !important; scrollbar-width: none !important;
} }
.notice-modal-content {
border: none !important;
}
.notice-unified-content.notice-modal-state { .notice-unified-content.notice-modal-state {
border: none !important; border: none !important;
} }
// Notice card hover effects for main page cards
.notice-unified-content.notice-card-state:not([data-transitioning]) { .notice-unified-content.notice-card-state:not([data-transitioning]) {
cursor: pointer; cursor: pointer;
@@ -3726,7 +3543,6 @@ div.day-empty {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
// Modal styles
.notice-modal-overlay { .notice-modal-overlay {
position: fixed; position: fixed;
top: 0; top: 0;
@@ -3745,7 +3561,7 @@ div.day-empty {
.notice-modal-transition { .notice-modal-transition {
position: fixed; position: fixed;
z-index: 10001; z-index: 10001;
transition: none; // Controlled by motion animations transition: none;
} }
.notice-modal-content { .notice-modal-content {
@@ -3779,13 +3595,7 @@ div.day-empty {
padding: 16px; padding: 16px;
border: 1px solid rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.dark .notice-unified-content {
color: white;
}
.notice-unified-content {
h1, h1,
h2, h2,
h3, h3,
@@ -3809,7 +3619,7 @@ div.day-empty {
} }
.notice-content-title { .notice-content-title {
font-size: 20px !important; // Nice middle ground - not too big, not too small font-size: 20px !important;
font-weight: 600 !important; font-weight: 600 !important;
color: var(--text-primary) !important; color: var(--text-primary) !important;
margin: 0 0 12px !important; margin: 0 0 12px !important;
@@ -3824,17 +3634,14 @@ div.day-empty {
margin: 0 !important; margin: 0 !important;
flex: 1; flex: 1;
display: block; display: block;
// Force stable layout dimensions - content renders at full size always min-width: 600px;
min-width: 600px; // Ensure tables have consistent width for layout
width: 100%; width: 100%;
} }
// The ONLY difference between states is clipping!
&.notice-card-state { &.notice-card-state {
.notice-content-body { .notice-content-body {
// Clip to show only 2 lines but keep full layout
overflow: hidden; overflow: hidden;
max-height: 3em; // ~2 lines worth of height max-height: 3em;
} }
} }
@@ -3844,10 +3651,8 @@ div.day-empty {
} }
.notice-content-body { .notice-content-body {
// Show full content with scrolling overflow-y: hidden;
overflow-y: auto;
// Custom scrollbar for long content
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 6px; width: 6px;
} }
@@ -3865,7 +3670,6 @@ div.day-empty {
background: rgba(255, 255, 255, 0.3); background: rgba(255, 255, 255, 0.3);
} }
// Style content elements nicely
p { p {
margin-bottom: 12px; margin-bottom: 12px;
@@ -3896,6 +3700,10 @@ div.day-empty {
} }
} }
.dark .notice-unified-content {
color: white;
}
.notice-header { .notice-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -3994,7 +3802,6 @@ button.notice-close-btn {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
// Custom scrollbar
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 6px; width: 6px;
} }
@@ -4012,7 +3819,6 @@ button.notice-close-btn {
background: rgba(255, 255, 255, 0.3); background: rgba(255, 255, 255, 0.3);
} }
// Style content elements
p { p {
margin-bottom: 12px; margin-bottom: 12px;
@@ -4041,7 +3847,6 @@ button.notice-close-btn {
} }
} }
// Dark mode adjustments
.dark { .dark {
.notice-card { .notice-card {
border-color: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.05);
@@ -4056,7 +3861,6 @@ button.notice-close-btn {
} }
} }
// Mobile responsiveness
@media (max-width: 768px) { @media (max-width: 768px) {
.notice-modal-overlay { .notice-modal-overlay {
padding: 10px; padding: 10px;
@@ -1,7 +1,7 @@
import type { Plugin } from "../../core/types"; import type { Plugin } from "../../core/types";
import { waitForElm } from "@/seqta/utils/waitForElm"; import { waitForElm } from "@/seqta/utils/waitForElm";
import { getAssessmentsData } from "./api"; import { getAssessmentsData } from "./api";
import { renderSkeletonLoader, renderErrorState } from "./ui"; import { renderErrorState, renderSkeletonLoader } from "./ui";
import styles from "./styles.css?inline"; import styles from "./styles.css?inline";
import { delay } from "@/seqta/utils/delay"; import { delay } from "@/seqta/utils/delay";
@@ -106,7 +106,6 @@
max-height: 100%; max-height: 100%;
background: #f8fafc; background: #f8fafc;
border-radius: 12px; border-radius: 12px;
box-shadow: 0 0 0 2px #e2e8f0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-height: 0; min-height: 0;
@@ -340,7 +339,7 @@
font-size: 0.875rem; font-size: 0.875rem;
font-weight: 600; font-weight: 600;
color: #1a1a1a; color: #1a1a1a;
margin: 0 0 0.75rem 0; margin: 0 0 0.75rem;
line-height: 1.4; line-height: 1.4;
padding-right: 2rem; /* Make room for menu button */ padding-right: 2rem; /* Make room for menu button */
} }
@@ -1,5 +1,5 @@
import type { Plugin } from "@/plugins/core/types"; import type { Plugin } from "@/plugins/core/types";
import { componentSetting, defineSettings, numberSetting, booleanSetting } from "@/plugins/core/settingsHelpers"; import { booleanSetting, componentSetting, defineSettings, numberSetting } from "@/plugins/core/settingsHelpers";
import styles from "./styles.css?inline"; import styles from "./styles.css?inline";
import BackgroundMusicSetting from "./BackgroundMusicSetting.svelte"; import BackgroundMusicSetting from "./BackgroundMusicSetting.svelte";
import localforage from "localforage"; import localforage from "localforage";
@@ -4,8 +4,8 @@ import {
booleanSetting, booleanSetting,
buttonSetting, buttonSetting,
defineSettings, defineSettings,
Setting,
hotkeySetting, hotkeySetting,
Setting,
} from "@/plugins/core/settingsHelpers"; } from "@/plugins/core/settingsHelpers";
import styles from "./styles.css?inline"; import styles from "./styles.css?inline";
import { waitForElm } from "@/seqta/utils/waitForElm"; import { waitForElm } from "@/seqta/utils/waitForElm";
@@ -1,4 +1,4 @@
import { clear, getAll, get, put, remove } from "./db"; import { clear, get, getAll, put, remove } from "./db";
import { jobs } from "./jobs"; import { jobs } from "./jobs";
import { renderComponentMap } from "./renderComponents"; import { renderComponentMap } from "./renderComponents";
import type { IndexItem, Job, JobContext } from "./types"; import type { IndexItem, Job, JobContext } from "./types";
@@ -1,4 +1,4 @@
import type { Job, IndexItem } from "../types"; import type { IndexItem, Job } from "../types";
const fetchForums = async () => { const fetchForums = async () => {
const res = await fetch(`${location.origin}/seqta/student/load/forums`, { const res = await fetch(`${location.origin}/seqta/student/load/forums`, {
@@ -1,4 +1,4 @@
import type { Job, IndexItem } from "../types"; import type { IndexItem, Job } from "../types";
import { htmlToPlainText } from "../utils"; import { htmlToPlainText } from "../utils";
import { delay } from "@/seqta/utils/delay"; import { delay } from "@/seqta/utils/delay";
import { VectorWorkerManager } from "../worker/vectorWorkerManager"; import { VectorWorkerManager } from "../worker/vectorWorkerManager";
@@ -1,4 +1,4 @@
import type { Job, IndexItem } from "../types"; import type { IndexItem, Job } from "../types";
import { htmlToPlainText } from "../utils"; import { htmlToPlainText } from "../utils";
import { fetchMessageContent } from "./messages"; import { fetchMessageContent } from "./messages";
import { delay } from "@/seqta/utils/delay"; import { delay } from "@/seqta/utils/delay";
+1 -1
View File
@@ -1,5 +1,5 @@
import type { Plugin } from "@/plugins/core/types"; import type { Plugin } from "@/plugins/core/types";
import { defineSettings, componentSetting } from "@/plugins/core/settingsHelpers"; import { componentSetting, defineSettings } from "@/plugins/core/settingsHelpers";
import ProfilePictureSetting from "./ProfilePictureSetting.svelte"; import ProfilePictureSetting from "./ProfilePictureSetting.svelte";
import { waitForElm } from "@/seqta/utils/waitForElm"; import { waitForElm } from "@/seqta/utils/waitForElm";
import styles from "./styles.css?inline"; import styles from "./styles.css?inline";
+3 -3
View File
@@ -1,13 +1,13 @@
import type { import type {
BooleanSetting, BooleanSetting,
ButtonSetting,
ComponentSetting,
HotkeySetting,
NumberSetting, NumberSetting,
Plugin, Plugin,
PluginSettings, PluginSettings,
SelectSetting, SelectSetting,
StringSetting, StringSetting,
ButtonSetting,
HotkeySetting,
ComponentSetting,
} from "./types"; } from "./types";
import { createPluginAPI } from "./createAPI"; import { createPluginAPI } from "./createAPI";
import browser from "webextension-polyfill"; import browser from "webextension-polyfill";
+3 -3
View File
@@ -1,12 +1,12 @@
import type { import type {
BooleanSetting, BooleanSetting,
ButtonSetting, ButtonSetting,
ComponentSetting,
HotkeySetting,
NumberSetting, NumberSetting,
PluginSettings,
SelectSetting, SelectSetting,
StringSetting, StringSetting,
HotkeySetting,
PluginSettings,
ComponentSetting,
} from "./types"; } from "./types";
/** /**