diff --git a/public/assets/dark.css b/public/assets/dark.css new file mode 100644 index 0000000..a4b81bd --- /dev/null +++ b/public/assets/dark.css @@ -0,0 +1,19 @@ +:root { + /* Fonts */ + --font-color: var(--color-white); + --font-color-gray: var(--color-gray-100); + --font-color-grayer: var(--color-gray-200); + + /* Border */ + --border-color: var(--color-gray-700); + --border-color-hover: var(--color-gray-600); + + /* Elements */ + --background-body-color: var(--color-gray-900); + --background-header-color: var(--color-gray-900); + --background-inline-code: var(--color-gray-800); + --background-color-hover: var(--color-gray-800); + --background-btn-link: var(--color-gray-800); + --background-btn-link-active: var(--color-gray-700); + --background-inputs-color: var(--color-gray-800); +} diff --git a/public/assets/light.css b/public/assets/light.css new file mode 100644 index 0000000..7e40887 --- /dev/null +++ b/public/assets/light.css @@ -0,0 +1,19 @@ +:root { + /* Fonts */ + --font-color: var(--color-black); + --font-color-gray: var(--color-gray-500); + --font-color-grayer: var(--color-gray-700); + + /* Border */ + --border-color: var(--color-gray-100); + --border-color-hover: var(--color-gray-400); + + /* Elements */ + --background-body-color: var(--color-white); + --background-header-color: var(--color-white); + --background-inline-code: rgba(0, 0, 0, 0.05); + --background-color-hover: var(--color-gray-50); + --background-btn-link: var(--color-white); + --background-btn-link-active: var(--color-white); + --background-inputs-color: var(--color-white); +} diff --git a/src/components/ArticlePost/ArticlePost.scss b/src/components/ArticlePost/ArticlePost.scss index 1ec4c44..b61fae7 100644 --- a/src/components/ArticlePost/ArticlePost.scss +++ b/src/components/ArticlePost/ArticlePost.scss @@ -27,7 +27,7 @@ & h1 { font-weight: 600; - font-size: 2.25rem; + font-size: 2.125rem; } & p { diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro index bc28aed..f7d9cdb 100644 --- a/src/components/BaseHead.astro +++ b/src/components/BaseHead.astro @@ -12,6 +12,8 @@ const { title = SITE_METADATA.title, description } = Astro.props as Props; + + @@ -19,4 +21,4 @@ const { title = SITE_METADATA.title, description } = Astro.props as Props; {title} - + diff --git a/src/components/Header/Header.scss b/src/components/Header/Header.scss index 049cc0e..40bbdf9 100644 --- a/src/components/Header/Header.scss +++ b/src/components/Header/Header.scss @@ -6,6 +6,7 @@ padding-top: 15px; padding-bottom: 15px; user-select: none; + z-index: 9999; & .container { display: flex; @@ -81,7 +82,7 @@ position: absolute; height: 3px; width: 100%; - background: var(--color-black); + background: var(--font-color); border-radius: 7px; opacity: 1; left: 0; @@ -125,7 +126,7 @@ body[data-is-mobile-open='true'] { & .header { - background-color: var(--color-white); + background-color: var(--background-header-color); position: fixed; right: 0; left: 0; diff --git a/src/components/SearchInput/SearchInput.scss b/src/components/SearchInput/SearchInput.scss index db15dad..1ba730e 100644 --- a/src/components/SearchInput/SearchInput.scss +++ b/src/components/SearchInput/SearchInput.scss @@ -12,12 +12,14 @@ } & input { padding-left: 40px; - color: var(--font-color-grayer); + color: var(--font-color-gray); background-color: var(--background-color-hover); } & span { font-size: var(--font-size-lg); font-weight: 500; color: var(--font-color-grayer); + min-width: 20px; + text-align: center; } } diff --git a/src/components/TagsList/TagsList.tsx b/src/components/TagsList/TagsList.tsx index 472a5b3..0e0a252 100644 --- a/src/components/TagsList/TagsList.tsx +++ b/src/components/TagsList/TagsList.tsx @@ -86,12 +86,7 @@ const TagsList: Component = (props) => { ( - )} diff --git a/src/components/ThemeSwticher/ThemeSwitcher.astro b/src/components/ThemeSwticher/ThemeSwitcher.astro index 360fe7f..915d7c0 100644 --- a/src/components/ThemeSwticher/ThemeSwitcher.astro +++ b/src/components/ThemeSwticher/ThemeSwitcher.astro @@ -1,8 +1,8 @@ --- import './ThemeSwitcher.scss'; -import { Icon } from 'astro-icon' +import { Icon } from 'astro-icon'; --- diff --git a/src/layouts/article.astro b/src/layouts/article.astro index f923464..4b34305 100644 --- a/src/layouts/article.astro +++ b/src/layouts/article.astro @@ -2,12 +2,11 @@ import type { Props as BaseHeadProps } from '@root/components/BaseHead.astro'; import type { ArticleType } from '@root/types'; -import '@styles/global.scss'; -import BaseHead from '@root/components/BaseHead.astro'; +import BaseHead from '@components/BaseHead.astro'; import BaseLayout from '@components/BaseLayout'; -import { DateFormatter } from '@root/utils'; -import ArticleContent from '@root/components/ArticleContent'; -import ArticlePost from '@root/components/ArticlePost'; +import ArticleContent from '@components/ArticleContent'; +import ArticlePost from '@components/ArticlePost'; +import '@styles/global.scss'; export interface Props extends BaseHeadProps { lang?: string | undefined; diff --git a/src/layouts/default.astro b/src/layouts/default.astro index 08a3d64..44ed720 100644 --- a/src/layouts/default.astro +++ b/src/layouts/default.astro @@ -1,11 +1,11 @@ --- -import type { Props as BaseHeadProps } from '@root/components/BaseHead.astro'; +import type { Props as BaseHeadProps } from '@components/BaseHead.astro'; -import '@styles/global.scss'; -import BaseHead from '@root/components/BaseHead.astro'; +import BaseHead from '@components/BaseHead.astro'; import BaseLayout from '@components/BaseLayout'; import { SITE_METADATA } from '@root/config'; -import PageHeading from '@root/components/PageHeading'; +import PageHeading from '@components/PageHeading'; +import '@styles/global.scss'; export interface Props extends BaseHeadProps { lang?: string | undefined; diff --git a/src/pages/contacts.astro b/src/pages/contacts.astro index 509d701..82caea4 100644 --- a/src/pages/contacts.astro +++ b/src/pages/contacts.astro @@ -1,6 +1,5 @@ --- import PageLayout from '@layouts/default.astro'; -import PageHeading from '@components/PageHeading'; import ContactForm from '@components/ContactForm'; import ContactsList from '@components/ContactsList'; --- diff --git a/src/styles/global.scss b/src/styles/global.scss index 1e14a15..3b2e08b 100644 --- a/src/styles/global.scss +++ b/src/styles/global.scss @@ -1,10 +1,9 @@ :root { + color-scheme: light dark; + /* Fonts */ --font-fallback: -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji; --font-family-base: 'Rubik', var(--font-fallback); - --font-color: var(--color-black); - --font-color-gray: var(--color-gray-500); - --font-color-grayer: var(--color-gray-700); --font-size-xs: 0.75rem; --font-size-sm: 0.875rem; --font-size-md: 1rem; @@ -75,11 +74,7 @@ --color-yellow-800: #4b2900; --color-yellow-900: #341a00; - --background-color-hover: var(--color-gray-50); - /* Border */ - --border-color: var(--color-gray-100); - --border-color-hover: var(--color-gray-400); --border-radius-md: 3px; --border-radius-lg: 5px; @@ -87,12 +82,7 @@ --content-width: 760px; --content-padding: 24px; - /* Elements */ - --background-body-color: var(--color-white); - --background-header-color: var(--color-white); - --background-scrollbar-track-color: #eff1f5; - --background-scrollbar-thumb-color: var(--color-gray-100); - --background-inline-code: rgba(0, 0, 0, 0.05); + --outline-color: var(--color-blue-500); --opacity-hover: 0.7; } @@ -102,19 +92,6 @@ color: var(--color-black); } -::-webkit-scrollbar { - width: 10px; - height: 10px; -} - -::-webkit-scrollbar-track { - background: var(--background-scrollbar-track-color); -} - -::-webkit-scrollbar-thumb { - background: var(--background-scrollbar-thumb-color); -} - html, body { box-sizing: border-box; @@ -168,6 +145,7 @@ body { align-items: center; column-gap: 5px; padding: 3px 10px; + background-color: var(--background-btn-link); border-radius: var(--border-radius-md); border: 1px solid var(--border-color); text-decoration: none; @@ -181,6 +159,10 @@ body { color: inherit; border-color: var(--border-color-hover); } + &[data-active='true'] { + background-color: var(--background-btn-link-active); + border-color: var(--border-color-hover); + } } li::marker { @@ -217,9 +199,10 @@ textarea { padding: 8px 15px; border: 1px solid var(--border-color); border-radius: var(--border-radius-md); + background-color: var(--background-inputs-color); font-size: var(--font-size-sm); width: 100%; - outline-color: var(--color-blue-500); + outline-color: var(--outline-color); resize: vertical; }