diff --git a/README.md b/README.md index 5a8b50884..92f9f5c9f 100644 --- a/README.md +++ b/README.md @@ -93,8 +93,8 @@ **Theming:** [Customize now ✨](https://hoppscotch.io/settings) -- Choose theme: Kinda Dark (default), Clearly White, Just Black and System theme -- Choose accent color: Green (default), Yellow, Pink, Red, Purple, Orange, Cyan and Blue +- Choose theme: System, Light, Dark (default) and Black +- Choose accent color: Blue, Green (default), Teal, Purple, Orange, Pink, Red, and Yellow - Toggle multi-colored headings - Toggle auto-scroll to response diff --git a/assets/scss/styles.scss b/assets/scss/styles.scss index 0a478ae69..a1162c020 100644 --- a/assets/scss/styles.scss +++ b/assets/scss/styles.scss @@ -87,9 +87,6 @@ a { @apply inline-flex; @apply text-current; @apply no-underline; - @apply transition; - @apply ease-in-out; - @apply duration-200; @apply outline-none; &.link { @@ -361,6 +358,7 @@ button { &:not([disabled]):focus { @apply text-actColor; @apply fill-current; + @apply outline-none; box-shadow: inset 0 0 0 2px var(--fg-color); } diff --git a/assets/scss/themes.scss b/assets/scss/themes.scss index 5f09c0d46..4bb326551 100644 --- a/assets/scss/themes.scss +++ b/assets/scss/themes.scss @@ -1,18 +1,9 @@ @mixin baseTheme { - --font-body: 'Poppins', 'sans-serif'; - --font-mono: 'Roboto Mono', 'monoscpace'; - --font-icon: 'Material Icons'; + --font-body: "Poppins", "sans-serif"; + --font-mono: "Roboto Mono", "monoscpace"; + --font-icon: "Material Icons"; } -/** - Main Themes: - - dark (default) - - light - - black - - auto - */ - -// Dark is the default theme variant. @mixin darkTheme { // Background color --bg-color: rgba(32, 33, 36, 1); @@ -28,14 +19,10 @@ --brd-color: rgba(255, 255, 255, 0.05); // Error color --err-color: rgba(255, 255, 255, 0.05); - // Acent color - --ac-color: rgba(80, 250, 123, 1); - // Active text color - --act-color: rgba(32, 33, 36, 1); - // Auto-complete color - --atc-color: rgba(32, 33, 36, 1); // Tooltip color --tt-color: rgba(53, 53, 53, 1); + // Editor theme + --editor-theme: "twilight"; } @mixin lightTheme { @@ -53,14 +40,10 @@ --brd-color: rgba(0, 0, 0, 0.1); // Error color --err-color: rgba(0, 0, 0, 0.1); - // Acent color - --ac-color: rgba(80, 250, 123, 1); - // Active text color - --act-color: rgba(255, 255, 255, 1); - // Auto-complete color - --atc-color: rgba(255, 255, 255, 1); // Tooltip color --tt-color: rgba(220, 220, 220, 1); + // Editor theme + --editor-theme: "iplastic"; } @mixin blackTheme { @@ -78,37 +61,107 @@ --brd-color: rgba(255, 255, 255, 0.05); // Error color --err-color: rgba(255, 255, 255, 0.05); - // Acent color - --ac-color: rgba(80, 250, 123, 1); - // Active text color - --act-color: rgba(0, 0, 0, 1); - // Auto-complete color - --atc-color: rgba(0, 0, 0, 1); // Tooltip color --tt-color: rgba(18, 18, 18, 1); + // Editor theme + --editor-theme: "vibrant_ink"; +} + +@mixin blueTheme { + // Acent color + --ac-color: theme("colors.blue.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); +} + +@mixin greenTheme { + // Acent color + --ac-color: theme("colors.green.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); +} + +@mixin tealTheme { + // Acent color + --ac-color: theme("colors.teal.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); +} + +@mixin purpleTheme { + // Acent color + --ac-color: theme("colors.purple.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); +} + +@mixin orangeTheme { + // Acent color + --ac-color: theme("colors.orange.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); +} + +@mixin pinkTheme { + // Acent color + --ac-color: theme("colors.pink.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); +} + +@mixin redTheme { + // Acent color + --ac-color: theme("colors.red.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); +} + +@mixin yellowTheme { + // Acent color + --ac-color: theme("colors.yellow.400"); + // Active text color + --act-color: rgba(32, 33, 36, 1); } :root { @include baseTheme; @include darkTheme; + @include greenTheme; } :root.light { @include lightTheme; } +:root.dark { + @include darkTheme; +} + :root.black { @include blackTheme; } -@media (prefers-color-scheme: dark) { - :root.auto { - @include darkTheme; - } +:root[data-accent="blue"] { + @include blueTheme; } - -@media (prefers-color-scheme: light) { - :root.auto { - @include lightTheme; - } +:root[data-accent="green"] { + @include greenTheme; +} +:root[data-accent="teal"] { + @include tealTheme; +} +:root[data-accent="purple"] { + @include purpleTheme; +} +:root[data-accent="orange"] { + @include orangeTheme; +} +:root[data-accent="pink"] { + @include pinkTheme; +} +:root[data-accent="red"] { + @include redTheme; +} +:root[data-accent="yellow"] { + @include yellowTheme; } diff --git a/components/collections/index.vue b/components/collections/index.vue index 53670c76d..102bc4941 100644 --- a/components/collections/index.vue +++ b/components/collections/index.vue @@ -85,7 +85,7 @@ TODO: diff --git a/components/environments/index.vue b/components/environments/index.vue index 306ac7e1c..53823c52d 100644 --- a/components/environments/index.vue +++ b/components/environments/index.vue @@ -44,7 +44,7 @@ diff --git a/components/firebase/feeds.vue b/components/firebase/feeds.vue index e8691568b..4100fd867 100644 --- a/components/firebase/feeds.vue +++ b/components/firebase/feeds.vue @@ -31,7 +31,7 @@ diff --git a/components/ui/accent-mode-picker.vue b/components/ui/accent-mode-picker.vue new file mode 100644 index 000000000..a956c5e47 --- /dev/null +++ b/components/ui/accent-mode-picker.vue @@ -0,0 +1,39 @@ + + + diff --git a/components/ui/ace-editor.vue b/components/ui/ace-editor.vue index 8722e8710..1be631a13 100644 --- a/components/ui/ace-editor.vue +++ b/components/ui/ace-editor.vue @@ -19,8 +19,6 @@ diff --git a/components/ui/js-editor.vue b/components/ui/js-editor.vue index 8ca051bb7..81b284eb1 100644 --- a/components/ui/js-editor.vue +++ b/components/ui/js-editor.vue @@ -19,8 +19,6 @@