summaryrefslogtreecommitdiff
path: root/scss/launcher.scss
blob: 7c775b7547102e11a8d38ddcb088018093c31f9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
@use "sass:color";
@use "scheme";
@use "lib";
@use "font";

@mixin launcher($mode, $colour) {
    &.#{$mode} {
        label.icon {
            color: $colour;
        }

        .search-bar {
            .mode {
                @include lib.border($colour, $width: 2);
            }

            .entry {
                border-bottom: lib.s(2) solid $colour;
            }
        }

        .mode-switcher .mode {
            &.selected {
                border-top: lib.s(2) solid $colour;
            }

            &:hover,
            &:focus {
                color: $colour;
            }

            &:active {
                color: color.mix($colour, scheme.$base, 80%);
            }
        }
    }
}

.launcher {
    @include lib.rounded(10);
    @include lib.shadow;
    @include font.mono;

    background-color: scheme.$base;
    color: scheme.$text;
    padding: lib.s(14);
    font-size: lib.s(16);
    min-width: lib.s(700);
    min-height: lib.s(420);

    @include launcher(apps, scheme.$sapphire);
    @include launcher(files, scheme.$peach);
    @include launcher(math, scheme.$green);
    @include launcher(windows, scheme.$mauve);

    .search-bar {
        margin-bottom: lib.s(15);

        @include lib.spacing(10);

        .mode {
            @include lib.rounded(5);
            @include lib.element-decel;

            padding: lib.s(5);
        }
    }

    .mode-switcher .mode {
        @include lib.element-decel;

        border-top: lib.s(2) solid transparent;
        padding-top: lib.s(10);

        .icon {
            font-size: lib.s(24);
        }

        & > box {
            @include lib.spacing(10);
        }
    }

    .result {
        @include lib.element-decel;

        border-bottom: lib.s(2) solid transparent;
        padding-left: lib.s(10);

        .icon {
            font-size: lib.s(32);
        }

        .has-sublabel {
            padding: lib.s(3) 0;
        }

        .sublabel {
            color: scheme.$subtext0;
            font-size: lib.s(14);
        }

        & > box {
            @include lib.spacing(10);
        }

        &.italic {
            font-style: italic;
        }

        &:hover {
            background-color: scheme.$surface0;
        }

        &:focus {
            border-bottom: lib.s(2) solid scheme.$red;
            color: scheme.$red;

            .sublabel {
                color: color.mix(scheme.$red, scheme.$base, 70%);
            }
        }

        &:active {
            background-color: scheme.$surface1;
        }
    }
}