diff --git a/src/App.vue b/src/App.vue index c08b5c1..0e8795f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,14 +1,25 @@ + - - - + + + + + Livonsaaren Tietokonepaja + + + Tervetuloa Livonsaaren Tietokonepajan verkkosivuille! Tarjoamme kattavia IT-palveluita, + laitehuoltoja, kotisivuratkaisuja ja Linux-tukea. Tutustu palveluihimme ja ota yhteyttä! + + + Etusivu @@ -26,9 +37,44 @@ header { max-height: 100vh; } +.title-section { + display: flex; + align-items: center; + gap: 1.5rem; + margin-bottom: 2rem; +} + +.title-with-logo { + display: flex; + align-items: center; + gap: 1rem; + justify-content: center; + margin-bottom: 1rem; + flex-direction: column; +} + .logo { - display: block; - margin: 0 auto 2rem; + height: 100%; + width: auto; + max-height: 120px; + flex-shrink: 0; +} + +.greetings h1 { + font-weight: 500; + font-size: 2.6rem; + position: relative; + margin: 0; +} + +.greetings h3 { + font-size: 1.2rem; + margin: 0; +} + +.greetings h1, +.greetings h3 { + text-align: center; } nav { @@ -63,8 +109,27 @@ nav a:first-of-type { padding-right: calc(var(--section-gap) / 2); } + .title-section { + flex-direction: row; + align-items: center; + margin-bottom: 0; + } + + .title-with-logo { + justify-content: flex-start; + flex-direction: row; + } + .logo { - margin: 0 2rem 0 0; + height: 100%; + width: auto; + max-height: 100px; + margin-right: 0.5rem; + } + + .greetings h1, + .greetings h3 { + text-align: left; } header .wrapper { diff --git a/src/assets/base.css b/src/assets/base.css index 8816868..035ba5c 100644 --- a/src/assets/base.css +++ b/src/assets/base.css @@ -33,11 +33,50 @@ --color-heading: var(--vt-c-text-light-1); --color-text: var(--vt-c-text-light-1); + /* SVG/Icon colors */ + --color-svg-fill: #000000; + --color-svg-stroke: #000000; + --section-gap: 160px; } +/* Dark theme - manual toggle */ +html.dark { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + + /* SVG/Icon colors for dark theme */ + --color-svg-fill: #ffffff; + --color-svg-stroke: #ffffff; +} + +/* Light theme - manual toggle */ +html.light { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + /* SVG/Icon colors for light theme */ + --color-svg-fill: #000000; + --color-svg-stroke: #000000; +} + +/* System preference fallback - only when no manual preference is set */ @media (prefers-color-scheme: dark) { - :root { + html:not(.light):not(.dark) { --color-background: var(--vt-c-black); --color-background-soft: var(--vt-c-black-soft); --color-background-mute: var(--vt-c-black-mute); @@ -47,6 +86,10 @@ --color-heading: var(--vt-c-text-dark-1); --color-text: var(--vt-c-text-dark-2); + + /* SVG/Icon colors for dark theme */ + --color-svg-fill: #ffffff; + --color-svg-stroke: #ffffff; } } @@ -84,3 +127,36 @@ body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } + +/* Global SVG theming */ +svg { + transition: + fill 0.3s ease, + stroke 0.3s ease; +} + +svg[fill='#000000'], +svg[fill='#000'] { + fill: var(--color-svg-fill) !important; +} + +svg[stroke='#000000'], +svg[stroke='#000'] { + stroke: var(--color-svg-stroke) !important; +} + +/* Target paths and other SVG elements with black fill/stroke */ +svg path[fill='#000000'], +svg path[fill='#000'] { + fill: var(--color-svg-fill) !important; +} + +svg path[stroke='#000000'], +svg path[stroke='#000'] { + stroke: var(--color-svg-stroke) !important; +} + +/* Target specific attribute values commonly used */ +svg g[fill='#000000'] { + fill: var(--color-svg-fill) !important; +} diff --git a/src/components/ThemeToggle.vue b/src/components/ThemeToggle.vue new file mode 100644 index 0000000..bba722d --- /dev/null +++ b/src/components/ThemeToggle.vue @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/icons/IconHomesite.vue b/src/components/icons/IconHomesite.vue index 8b17f4a..ba15e25 100644 --- a/src/components/icons/IconHomesite.vue +++ b/src/components/icons/IconHomesite.vue @@ -23,3 +23,9 @@ + + diff --git a/src/components/icons/IconItSupport.vue b/src/components/icons/IconItSupport.vue index deb0bb1..89d248b 100644 --- a/src/components/icons/IconItSupport.vue +++ b/src/components/icons/IconItSupport.vue @@ -1,6 +1,6 @@ + + + + + + + + + + + + + + + diff --git a/src/components/icons/IconRepair.vue b/src/components/icons/IconRepair.vue index be538ef..0837d9d 100644 --- a/src/components/icons/IconRepair.vue +++ b/src/components/icons/IconRepair.vue @@ -10,7 +10,7 @@ >