diff --git a/index.html b/index.html index 707b63d..de72471 100644 --- a/index.html +++ b/index.html @@ -23,7 +23,17 @@ - Requires https://github.com/forresttindall/Github-Activity-Calendar --> - + + + + + + + + + + +
@@ -37,7 +47,6 @@
  • Projects
  • Experience
  • Contact
  • -
  • +
  • diff --git a/styles/experience-section.css b/styles/experience-section.css new file mode 100644 index 0000000..58d0588 --- /dev/null +++ b/styles/experience-section.css @@ -0,0 +1,74 @@ + +/* Experience */ +.experience-card { + background: var(--text-background-colour); + padding: 1.5rem; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + margin-bottom: 2rem; + margin-top: 2rem; +} +.experience-card h3 { + margin-bottom: 0; +} +.experience-date { + color: var(--primary-colour); + font-size: 0.9rem; + width: 50%; + min-width: 50%; + -webkit-text-fill-color: inherit; + text-decoration: none; + pointer-events: none; +} +.experience-card:last-child { + margin-bottom: 0; +} +.experience-company-and-date { + display: flex; + justify-content: space-between; + align-items: center; + text-align: left; + width: 100%; + margin-bottom: 0.25rem; +} +.experience-description { + margin: 0.5rem 0; +} +.experience-additional-entry { + list-style-type: disc; + width: 100%; +} +.experience-header { + display: flex; + align-items: center; +} +.experience-additional-entry .experience-company-and-date { + display: flex; + width: 100%; +} +.experience-additional-entry .experience-job-title, +.experience-additional-entry .experience-company, +.experience-additional-entry .experience-date { + font-weight: bold; + margin: 0; + width: fit-content; +} +.experience-additional-entry .experience-company { + margin-left: 5px; + margin-right: auto; +} +.experience-additional-entry .experience-date { + font-weight: normal; + margin-left: auto; +} +.experience-additional-entry:not(:first-of-type) .experience-job-title::after { + content: " at "; + font-weight: normal; +} +.experience-additional-entry .experience-company::after { + content: " "; +} +.experience-additional-entry .experience-description:last-of-type { + margin-top: 0; + margin-bottom: 1rem; +} \ No newline at end of file diff --git a/styles/expertise-section.css b/styles/expertise-section.css new file mode 100644 index 0000000..f2decd1 --- /dev/null +++ b/styles/expertise-section.css @@ -0,0 +1,14 @@ +/* Expertise Section */ +.expertise-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.expertise-card { + background: var(--text-background-colour); + padding: 1.5rem; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + margin-bottom: 2rem; +} \ No newline at end of file diff --git a/styles/footer.css b/styles/footer.css new file mode 100644 index 0000000..f3b43b5 --- /dev/null +++ b/styles/footer.css @@ -0,0 +1,12 @@ +/* Footer styles */ +footer { + background-color: var(--primary-colour); + color: var(--text-background-colour); + text-align: center; + padding: 2rem 1rem; + margin-top: 4rem; +} + +footer a { + color: var(--text-background-colour); +} \ No newline at end of file diff --git a/styles/github-contributions-calendar.css b/styles/github-contributions-calendar.css new file mode 100644 index 0000000..a51d7a7 --- /dev/null +++ b/styles/github-contributions-calendar.css @@ -0,0 +1,24 @@ +/* GitHub Contributions Calendar */ +.github-calendar { + width: fit-content; + margin-left: auto; + margin-right: auto; +} +/* Hide broken statistics */ +.github-calendar > :not(:first-child) { + display: none; +} +/* Hide the "How we calculate contributions" text */ +.github-calendar .js-calendar-graph .width-full .float-left { + display: none; +} +/* Change title text */ +.github-calendar table.js-calendar-graph-table > caption:first-child { + color: transparent; + font-size: 0; +} +.github-calendar table.js-calendar-graph-table > caption:first-child::before { + content: "GitHub Contributions Calendar"; + color: var(--text-colour); + font-size: 1rem; +} \ No newline at end of file diff --git a/styles/google-translate.css b/styles/google-translate.css new file mode 100644 index 0000000..a842cb9 --- /dev/null +++ b/styles/google-translate.css @@ -0,0 +1,15 @@ + +/* Google Translate + - Hide poorly styled iframes +*/ +#google_translate_element { + background-color: white; + border-radius: 0.25vh; + padding: 0.5vh; +} +iframe.skiptranslate { + display: none !important; +} +body { + top: 0px !important; +} \ No newline at end of file diff --git a/styles/header.css b/styles/header.css new file mode 100644 index 0000000..fb89b42 --- /dev/null +++ b/styles/header.css @@ -0,0 +1,12 @@ + +/* Header styles */ +header { + background-color: var(--primary-colour); + color: var(--text-background-colour); + padding: 2rem 1rem; + text-align: center; +} + +header h1 { + color: var(--text-background-colour); +} \ No newline at end of file diff --git a/styles/home.css b/styles/home.css new file mode 100644 index 0000000..a4a7b07 --- /dev/null +++ b/styles/home.css @@ -0,0 +1,43 @@ + + +/* Main content styles */ +main { + max-width: 1200px; + margin: 0 auto; + padding: 2rem 1rem; +} + +section { + margin-bottom: 3rem; +} + +h1, h2, h3 { + margin-bottom: 1rem; +} + +ul, li { + list-style-position: outside; +} + +/* Common card styles */ +.expertise-card h3, +.project-card h3, +.experience-card h3 { + color: var(--secondary-colour); +} + +/* Responsive design */ +@media (max-width: 768px) { + nav ul { + flex-direction: column; + align-items: center; + gap: 1rem; + } + + .expertise-grid, + .projects-grid { + grid-template-columns: 1fr; + } +} + + diff --git a/styles/main.css b/styles/main.css new file mode 100644 index 0000000..74b8fe0 --- /dev/null +++ b/styles/main.css @@ -0,0 +1,19 @@ + +:root {} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + line-height: 1.6; + color: var(--text-colour); + background-color: var(--page-background-colour); +} + +h1, h2, h3 { + color: var(--primary-colour); +} diff --git a/styles/navigation.css b/styles/navigation.css new file mode 100644 index 0000000..fa3b266 --- /dev/null +++ b/styles/navigation.css @@ -0,0 +1,26 @@ +/* Navigation */ +nav { + background-color: var(--secondary-colour); + padding: 1rem; + position: sticky; + top: 0; + z-index: 100; +} + +nav ul { + list-style: none; + display: flex; + justify-content: center; + gap: 2rem; +} + +nav a { + color: var(--text-background-colour); + text-decoration: none; + font-weight: 500; + transition: color 0.3s; +} + +nav a:hover { + color: var(--accent-colour); +} \ No newline at end of file diff --git a/styles/projects-section.css b/styles/projects-section.css new file mode 100644 index 0000000..b412fd6 --- /dev/null +++ b/styles/projects-section.css @@ -0,0 +1,98 @@ + +/* Projects */ +.projects-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; + margin-top: 2rem; +} + +.project-card-gridslot { +} +.project-card { + background: var(--text-background-colour); + padding: 1.5rem; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + height: fit-content; +} + +.project-card .button { + display: inline-block; + padding: 0.5rem 1rem; + background-color: var(--accent-colour); + color: var(--text-background-colour); + text-decoration: none; + border-radius: 4px; + transition: background-color 0.3s; +} + +.project-card .button:hover { + background-color: #2b6cb0; +} + + +/* +.project-thumbnails { + position: relative; +} + +.project-thumbnail { + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 0; + overflow: hidden; + transition: height 0.3s ease; +} + +.project-thumbnail img { + width: 100%; + display: block; +} + +/* .project-card .button:hover + .project-thumbnail */ +/* +.project-card .button.project_demo_partsenterprise_erp:hover + .project-thumbnail.project_demo_partsenterprise_erp, +.project-card .button.project_demo_partsenterprise_store:hover + .project-thumbnail.project_demo_partsenterprise_store, +.project-card .button.project_demo_live_partsenterprise_store:hover + .project-thumbnail.project_demo_live_partsenterprise_store, +.project-card .button.project_demo_partserp:hover + .project-thumbnail.project_demo_partserp + +*/ +/* +.project-links .button.project_demo_partsenterprise_erp:hover ~ .project-thumbnails .project_demo_partsenterprise_erp, +.project-links .button.project_demo_partsenterprise_store:hover ~ .project-thumbnails .project_demo_partsenterprise_store, +.project-links .button.project_demo_live_partsenterprise_store:hover ~ .project-thumbnails .project_demo_live_partsenterprise_store, +.project-links .button.project_demo_partserp:hover ~ .project-thumbnails .project_demo_partserp +* / +.project-thumbnail.active +{ + height: 200px; /* Adjust the height as needed * / +} +*/ +.project-detail-button { + font-size: 0.9rem; + text-decoration: underline; + margin-top: 1vh; + cursor: pointer; + width: fit-content; +} +.project-thumbnail { + margin-top: 2vh; +} +.project-thumbnail img { + max-width: 100%; + height: auto; +} +.project-detail-container { + display: none; +} +.project-detail-container.active { + display: block; +} + +.project-links { + text-align: center; + margin-top: 1vh; +} diff --git a/styles/styles.css b/styles/styles.css deleted file mode 100644 index c770480..0000000 --- a/styles/styles.css +++ /dev/null @@ -1,464 +0,0 @@ -/* Modern CSS reset and variables */ -:root { - /* Claude dark blue / grey theme */ - --text-colour: #1a202c; - --primary-colour: #2d3748; - --secondary-colour: #4a5568; - --accent-colour: #4299e1; - --page-background-colour: #f7fafc; - --text-background-colour: white; -} -:root[data-theme="purple"] { - /* Purple theme - - https://coolors.co/palette/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff - */ - --text-colour: #10002B; /* very dark */ - --primary-colour: #240046; /* medium dark */ - --secondary-colour: #3C096C; /* dark */ - --accent-colour: #C77DFF; /* light */ - --page-background-colour: #E0AAFF; /* very light */ - --text-background-colour: white; -} -:root[data-theme="red"], -:root[data-theme="light"] { - /* Red theme - - https://coolors.co/palette/2b0000-4f0000-740000-980000-b50000-d30000-eb1d1d-f50f0f-ff0000 - - https://coolors.co/palette/9c191b-ac1c1e-bd1f21-d02224-dd2c2f-e35053-e66063-ec8385-f1a7a9-f6cacc - */ - --text-colour: #2B0000; - --primary-colour: #740000; - --secondary-colour: #B50000; - --accent-colour: #E35053; - --page-background-colour: #F6CACC; - --text-background-colour: white; -} -:root[data-theme="dark"] { - /* - --text-colour: #E0E0E0; - --primary-colour: #BB86FC; - --secondary-colour: #03DAC6; - --accent-colour: #FF4081; - --page-background-colour: #121212; - --text-background-colour: black; - */ - /* - --text-colour: #E0E0E0; /* Light * / - --primary-colour: #740000; /* Dark * / - --secondary-colour: #B50000; /* Medium * / - --accent-colour: #FF4081; /* Light-medium * / - --page-background-colour: #121212; /* Dark * / - --text-background-colour: black; /* Black * / - */ - --text-colour: #E0E0E0; /* Light Gray */ - --primary-colour: #980000; /* Slightly lighter Dark Red */ - --secondary-colour: #D30000; /* Slightly lighter Medium Red */ - --accent-colour: #FF4081; /* Pink */ - --page-background-colour: #121212; /* Dark Gray */ - --text-background-colour: black; /* Dark Red */ -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - line-height: 1.6; - color: var(--text-colour); - background-color: var(--page-background-colour); -} - -/* Header styles */ -header { - background-color: var(--primary-colour); - color: var(--text-background-colour); - padding: 2rem 1rem; - text-align: center; -} - -header h1 { - color: var(--text-background-colour); -} - -nav { - background-color: var(--secondary-colour); - padding: 1rem; - position: sticky; - top: 0; - z-index: 100; -} - -nav ul { - list-style: none; - display: flex; - justify-content: center; - gap: 2rem; -} - -nav a { - color: var(--text-background-colour); - text-decoration: none; - font-weight: 500; - transition: color 0.3s; -} - -nav a:hover { - color: var(--accent-colour); -} - -/* Google Translate styles - - Hide poorly styled iframes -*/ -#google_translate_element { - background-color: white; - border-radius: 0.25vh; - padding: 0.5vh; -} -iframe.skiptranslate { - display: none !important; -} -body { - top: 0px !important; -} - -/* Toggle light mode / dark mode button */ -.theme-switch { - background: none; - border: none; - cursor: pointer; - width: 5vh; - height: 5vh; - padding: 0; - display: flex; - align-items: center; - justify-content: center; - position: relative; - margin-top: auto; - border-radius: 2.5vh; -} -.theme-switch:hover { - background-color: var(--primary-colour); -} -.theme-switch img.theme-icon, -.theme-switch svg.theme-icon { - width: 100%; - height: 100%; - object-fit: contain; - transition: opacity 1s ease, transform 1s ease; - position: absolute; - margin-top: auto; -} -img.theme-icon.dark-mode-icon { - top: 0vh; - left: -0.1vh; -} -svg.theme-icon.light-mode-icon { - width: 4vh; - height: 4vh; - top: 0.55vh; - left: 0.45vh; -} -svg.theme-icon.light-mode-icon .background { - fill: var(--secondary-colour); -} -.theme-switch:hover svg.theme-icon.light-mode-icon .background { - fill: var(--primary-colour); -} -svg.theme-icon.light-mode-icon .sun { - fill: var(--text-colour); - stroke: var(--text-colour); -} -/* -svg.theme-icon { - width: 2vh; - height: 2vh; -} -*/ - -/* Hide the icon that doesn't match the current theme */ -[data-theme="light"] .theme-switch .dark-mode-icon { - opacity: 1; - display: block; - transform: rotate(0deg); -} -[data-theme="light"] .theme-switch .light-mode-icon { - opacity: 0; - display: none; - transform: rotate(90deg); -} - -[data-theme="dark"] .theme-switch .dark-mode-icon { - opacity: 0; - display: none; - transform: rotate(-90deg); -} -[data-theme="dark"] .theme-switch .light-mode-icon { - opacity: 1; - display: block; - transform: rotate(0deg); -} - -/* Main content styles */ -main { - max-width: 1200px; - margin: 0 auto; - padding: 2rem 1rem; -} - -section { - margin-bottom: 3rem; -} - -h1, h2, h3 { - color: var(--primary-colour); - margin-bottom: 1rem; -} - -ul, li { - list-style-position: outside; -} - -.expertise-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 2rem; -} - -.expertise-card { - background: var(--text-background-colour); - padding: 1.5rem; - border-radius: 8px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - margin-bottom: 2rem; -} - -/* Projects */ -.projects-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 2rem; - margin-top: 2rem; -} - -.project-card-gridslot { -} -.project-card { - background: var(--text-background-colour); - padding: 1.5rem; - border-radius: 8px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - height: fit-content; -} - -.expertise-card h3, -.project-card h3, -.experience-card h3 { - color: var(--secondary-colour); -} - -.button { - display: inline-block; - padding: 0.5rem 1rem; - background-color: var(--accent-colour); - color: var(--text-background-colour); - text-decoration: none; - border-radius: 4px; - transition: background-color 0.3s; -} - -.button:hover { - background-color: #2b6cb0; -} -/* -.project-thumbnails { - position: relative; -} - -.project-thumbnail { - position: absolute; - bottom: 0; - left: 0; - right: 0; - height: 0; - overflow: hidden; - transition: height 0.3s ease; -} - -.project-thumbnail img { - width: 100%; - display: block; -} - -/* .project-card .button:hover + .project-thumbnail */ -/* -.project-card .button.project_demo_partsenterprise_erp:hover + .project-thumbnail.project_demo_partsenterprise_erp, -.project-card .button.project_demo_partsenterprise_store:hover + .project-thumbnail.project_demo_partsenterprise_store, -.project-card .button.project_demo_live_partsenterprise_store:hover + .project-thumbnail.project_demo_live_partsenterprise_store, -.project-card .button.project_demo_partserp:hover + .project-thumbnail.project_demo_partserp - -*/ -/* -.project-links .button.project_demo_partsenterprise_erp:hover ~ .project-thumbnails .project_demo_partsenterprise_erp, -.project-links .button.project_demo_partsenterprise_store:hover ~ .project-thumbnails .project_demo_partsenterprise_store, -.project-links .button.project_demo_live_partsenterprise_store:hover ~ .project-thumbnails .project_demo_live_partsenterprise_store, -.project-links .button.project_demo_partserp:hover ~ .project-thumbnails .project_demo_partserp -* / -.project-thumbnail.active -{ - height: 200px; /* Adjust the height as needed * / -} -*/ -.project-detail-button { - font-size: 0.9rem; - text-decoration: underline; - margin-top: 1vh; - cursor: pointer; - width: fit-content; -} -.project-thumbnail { - margin-top: 2vh; -} -.project-thumbnail img { - max-width: 100%; - height: auto; -} -.project-detail-container { - display: none; -} -.project-detail-container.active { - display: block; -} - -.project-links { - text-align: center; - margin-top: 1vh; -} - -/* Experience */ -.experience-card { - background: var(--text-background-colour); - padding: 1.5rem; - border-radius: 8px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - margin-bottom: 2rem; - margin-top: 2rem; -} -.experience-card h3 { - margin-bottom: 0; -} -.experience-date { - color: var(--primary-colour); - font-size: 0.9rem; - width: 50%; - min-width: 50%; - -webkit-text-fill-color: inherit; - text-decoration: none; - pointer-events: none; -} -.experience-card:last-child { - margin-bottom: 0; -} -.experience-company-and-date { - display: flex; - justify-content: space-between; - align-items: center; - text-align: left; - width: 100%; - margin-bottom: 0.25rem; -} -.experience-description { - margin: 0.5rem 0; -} -.experience-additional-entry { - list-style-type: disc; - width: 100%; -} -.experience-header { - display: flex; - align-items: center; -} -.experience-additional-entry .experience-company-and-date { - display: flex; - width: 100%; -} -.experience-additional-entry .experience-job-title, -.experience-additional-entry .experience-company, -.experience-additional-entry .experience-date { - font-weight: bold; - margin: 0; - width: fit-content; -} -.experience-additional-entry .experience-company { - margin-left: 5px; - margin-right: auto; -} -.experience-additional-entry .experience-date { - font-weight: normal; - margin-left: auto; -} -.experience-additional-entry:not(:first-of-type) .experience-job-title::after { - content: " at "; - font-weight: normal; -} -.experience-additional-entry .experience-company::after { - content: " "; -} -.experience-additional-entry .experience-description:last-of-type { - margin-top: 0; - margin-bottom: 1rem; -} - -/* Footer styles */ -footer { - background-color: var(--primary-colour); - color: var(--text-background-colour); - text-align: center; - padding: 2rem 1rem; - margin-top: 4rem; -} - -footer a { - color: var(--text-background-colour); -} - -/* Responsive design */ -@media (max-width: 768px) { - nav ul { - flex-direction: column; - align-items: center; - gap: 1rem; - } - - .expertise-grid, - .projects-grid { - grid-template-columns: 1fr; - } -} - - -/* GitHub Contributions Calendar */ -.github-calendar { - width: fit-content; - margin-left: auto; - margin-right: auto; -} -/* Hide broken statistics */ -.github-calendar > :not(:first-child) { - display: none; -} -/* Hide the "How we calculate contributions" text */ -.github-calendar .js-calendar-graph .width-full .float-left { - display: none; -} -/* Change title text */ -.github-calendar table.js-calendar-graph-table > caption:first-child { - color: transparent; - font-size: 0; -} -.github-calendar table.js-calendar-graph-table > caption:first-child::before { - content: "GitHub Contributions Calendar"; - color: var(--text-colour); - font-size: 1rem; -} \ No newline at end of file diff --git a/styles/themes.css b/styles/themes.css new file mode 100644 index 0000000..0d60543 --- /dev/null +++ b/styles/themes.css @@ -0,0 +1,135 @@ +/* Modern CSS reset and variables */ +:root { + /* Claude dark blue / grey theme */ + --text-colour: #1a202c; + --primary-colour: #2d3748; + --secondary-colour: #4a5568; + --accent-colour: #4299e1; + --page-background-colour: #f7fafc; + --text-background-colour: white; +} +:root[data-theme="purple"] { + /* Purple theme + - https://coolors.co/palette/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff + */ + --text-colour: #10002B; /* very dark */ + --primary-colour: #240046; /* medium dark */ + --secondary-colour: #3C096C; /* dark */ + --accent-colour: #C77DFF; /* light */ + --page-background-colour: #E0AAFF; /* very light */ + --text-background-colour: white; +} +:root[data-theme="red"], +:root[data-theme="light"] { + /* Red theme + - https://coolors.co/palette/2b0000-4f0000-740000-980000-b50000-d30000-eb1d1d-f50f0f-ff0000 + - https://coolors.co/palette/9c191b-ac1c1e-bd1f21-d02224-dd2c2f-e35053-e66063-ec8385-f1a7a9-f6cacc + */ + --text-colour: #2B0000; + --primary-colour: #740000; + --secondary-colour: #B50000; + --accent-colour: #E35053; + --page-background-colour: #F6CACC; + --text-background-colour: white; +} +:root[data-theme="dark"] { + /* + --text-colour: #E0E0E0; + --primary-colour: #BB86FC; + --secondary-colour: #03DAC6; + --accent-colour: #FF4081; + --page-background-colour: #121212; + --text-background-colour: black; + */ + /* + --text-colour: #E0E0E0; /* Light * / + --primary-colour: #740000; /* Dark * / + --secondary-colour: #B50000; /* Medium * / + --accent-colour: #FF4081; /* Light-medium * / + --page-background-colour: #121212; /* Dark * / + --text-background-colour: black; /* Black * / + */ + --text-colour: #E0E0E0; /* Light Gray */ + --primary-colour: #980000; /* Slightly lighter Dark Red */ + --secondary-colour: #D30000; /* Slightly lighter Medium Red */ + --accent-colour: #FF4081; /* Pink */ + --page-background-colour: #121212; /* Dark Gray */ + --text-background-colour: black; /* Dark Red */ +} + +/* Toggle light mode / dark mode button */ +.theme-switch { + background: none; + border: none; + cursor: pointer; + width: 5vh; + height: 5vh; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + position: relative; + margin-top: auto; + border-radius: 2.5vh; +} +.theme-switch:hover { + background-color: var(--primary-colour); +} +.theme-switch img.theme-icon, +.theme-switch svg.theme-icon { + width: 100%; + height: 100%; + object-fit: contain; + transition: opacity 1s ease, transform 1s ease; + position: absolute; + margin-top: auto; +} +img.theme-icon.dark-mode-icon { + top: 0vh; + left: -0.1vh; +} +svg.theme-icon.light-mode-icon { + width: 4vh; + height: 4vh; + top: 0.55vh; + left: 0.45vh; +} +svg.theme-icon.light-mode-icon .background { + fill: var(--secondary-colour); +} +.theme-switch:hover svg.theme-icon.light-mode-icon .background { + fill: var(--primary-colour); +} +svg.theme-icon.light-mode-icon .sun { + fill: var(--text-colour); + stroke: var(--text-colour); +} +/* +svg.theme-icon { + width: 2vh; + height: 2vh; +} +*/ + +/* Hide the icon that doesn't match the current theme */ +[data-theme="light"] .theme-switch .dark-mode-icon { + opacity: 1; + display: block; + transform: rotate(0deg); +} +[data-theme="light"] .theme-switch .light-mode-icon { + opacity: 0; + display: none; + transform: rotate(90deg); +} + +[data-theme="dark"] .theme-switch .dark-mode-icon { + opacity: 0; + display: none; + transform: rotate(-90deg); +} +[data-theme="dark"] .theme-switch .light-mode-icon { + opacity: 1; + display: block; + transform: rotate(0deg); +}