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 @@
+
+
+
+
+
+ lens
+
+
+
+
+
+
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 @@