// ============== // переменные // ============== // цветовая палитра $surface0: #363a4f; $text: #cad3f5; $lavender: #a8afe1; $red: #ed8796; $yellow: #f9e2af; $blue: #89b4fa; $pink: #e3a1d2; $muted-gray: #666666; $bg-dark: #1e2030; // геометрия $r: 12px; // радиус скругления $h: 30px; // высота элементов $win-margin: 6px; // отступ бара от краев экрана // капсулы $capsule-margin-x: 8px; $capsule-padding-x: 12px; $border-idle: 0.3px; $border-active: 1px; // тайминги $t-fast: 300ms; $t-norm: 400ms; $t-slow: 600ms; $ease-oil: cubic-bezier(0.16, 1, 0.3, 1); // ================= // базовые стили // ================= * { font-family: "Inter", "FiraCode Nerd Font"; font-size: 14px; all: unset; // сбрасываем дефолтные стили gtk } window { background-color: transparent; } .bar-inner { margin: $win-margin; padding: 0; // сброс отступов для крайних элементов > box:first-child .capsule:first-child { margin-left: 0; } > box:last-child .capsule:last-child { margin-right: 0; } } // общий стиль для всех таблеток на баре .capsule { background-color: rgba($surface0, 0.7); color: $text; margin: 0 $capsule-margin-x; padding: 0 $capsule-padding-x; border-radius: $r; min-height: $h; border: $border-idle solid $lavender; transition: all $t-fast ease-in-out; &.active { background-color: rgba($surface0, 0.9); border: $border-active solid $lavender; transition: all $t-slow ease-in-out; } } // ========================= // меню/поповеры/тутлипы // ========================= menu, .menu, popover, tooltip { background-color: rgba($bg-dark, 0.9); border: 1px solid rgba($lavender, 0.5); border-radius: $r; padding: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4); color: $text; } menuitem, .menu-item { padding: 6px 14px; border-radius: $r - 4px; color: $text; background-color: transparent; transition: all 0.2s ease; &:hover, &:focus { background-color: rgba($lavender, 0.2); color: $lavender; } } separator { background-color: rgba($lavender, 0.15); margin: 4px 8px; min-height: 1px; } // =========== // виджеты // =========== // воркспейсы .workspaces-rail { @extend .capsule; padding: 0; transition: all $t-norm $ease-oil; } .ws-pill { color: $text; background-color: transparent; border-radius: $r - 2px; min-height: $h; padding: 0 4px; transition: background-color $t-norm $ease-oil, color 0.3s ease; &.active { background-color: rgba($lavender, 0.2); } &.focused { background-color: rgba($lavender, 0.8); color: $surface0; } &.urgent { animation: pulse-lavender 4s infinite ease-in-out; } } .ws-id { margin-left: 4px; } .ws-icons-box { margin: 0 8px 0 4px; } // раскладка .kb-pill { @extend .capsule; margin-right: 0; .kb-label { transition: color $t-norm ease-in-out; } &.caps-on { border-color: $yellow; box-shadow: inset 0 0 0 1px rgba($yellow, 0.3); .kb-label { color: $yellow; } } &.num-on { border-color: $blue; box-shadow: inset 0 0 0 1px rgba($blue, 0.3); .kb-label { color: $blue; } } &.caps-on.num-on { border-color: $pink; .kb-label { color: $pink; } } } // статистика .stats-pill { padding: 0 6px; .slide-wrapper { transition: all $t-fast ease-in-out; } &.alert { border-color: $red; border-width: 0.75px; .slide-wrapper { border-color: $red; transition: all $t-slow ease-in-out; } } } .stat-group { .icon.alert, .stat-label.alert { color: $red; } } // управление звуком .volume-pill { @extend .capsule; .icon { margin-right: 14px; } .slide-wrapper { transition: all $t-fast ease-in-out; } &.muted { border-color: #444; .icon, .stat-label { color: $muted-gray; } scale slider { background-color: $muted-gray; } scale trough highlight { background-color: #444; } .slide-wrapper { border-color: #444; transition: all $t-slow ease-in-out; } } } .vol-bar { min-width: 120px; margin: 0 6px; } // трей .tray-capsule { @extend .capsule; padding: 0 10px; margin-right: 0; image { margin: 0 2px; opacity: 0.8; } } // часы .time-pill { .icon { margin-right: 8px; } } // ================ // элементы gtk // ================ // ползунки scale trough { background-color: $bg-dark; border-radius: $r; min-height: 6px; highlight { background-color: $lavender; border-radius: $r; } } scale slider { margin: -6px 0; background-color: $text; min-height: 12px; min-width: 12px; border-radius: 6px; } // разделитель внутри пилюль .slide-wrapper { margin-left: 10px; padding-left: 10px; border-left: 0.7px solid $lavender; } // ============ // анимации // ============ @keyframes pulse-lavender { 0% { background-color: rgba($lavender, 0); color: $text; } 50% { background-color: rgba($lavender, 0.2); color: lighten($text, 10%); } 100% { background-color: rgba($lavender, 0); color: $text; } }