summaryrefslogtreecommitdiff
path: root/assets/_theme-switcher.scss
diff options
context:
space:
mode:
Diffstat (limited to 'assets/_theme-switcher.scss')
-rw-r--r--assets/_theme-switcher.scss71
1 files changed, 71 insertions, 0 deletions
diff --git a/assets/_theme-switcher.scss b/assets/_theme-switcher.scss
new file mode 100644
index 0000000..bcc59d2
--- /dev/null
+++ b/assets/_theme-switcher.scss
@@ -0,0 +1,71 @@
+/**
+ * Docs: Theme switcher
+ */
+
+.switcher {
+ position: fixed;
+ right: calc(var(--spacing) / 2 + var(--scrollbar-width, 0px));
+ bottom: var(--spacing);
+ width: auto;
+ margin-bottom: 0;
+ padding: 0.75rem;
+ border-radius: 2rem;
+ box-shadow: var(--card-box-shadow);
+ line-height: 1;
+ text-align: right;
+
+ &::after {
+ display: inline-block;
+ width: 1rem;
+ height: 1rem;
+ border: 0.15rem solid currentColor;
+ border-radius: 50%;
+ background: linear-gradient(
+ to right,
+ currentColor 0%,
+ currentColor 50%,
+ transparent 50%
+ );
+ content: "";
+ vertical-align: bottom;
+ transition: transform var(--transition);
+ }
+
+ i {
+ display: inline-block;
+ max-width: 0;
+ padding: 0;
+ overflow: hidden;
+ font-style: normal;
+ font-size: 0.875rem;
+ white-space: nowrap;
+ }
+
+ &:hover,
+ &:focus {
+ max-width: 100%;
+ transition: background-color var(--transition),
+ border-color var(--transition), color var(--transition),
+ box-shadow var(--transition);
+ }
+
+ &:hover {
+ &::after {
+ transform: rotate(180deg);
+ }
+
+ i {
+ max-width: 100%;
+ padding: 0 calc(var(--spacing) / 2) 0 calc(var(--spacing) / 4);
+ transition: max-width var(--transition), padding var(--transition);
+ }
+ }
+
+ &:focus {
+ box-shadow: var(--card-box-shadow), 0 0 0 0.2rem var(--secondary-focus);
+ }
+
+ @media (min-width: map-get($breakpoints, "sm")) {
+ right: calc(var(--spacing) + var(--scrollbar-width, 0px));
+ }
+}