summaryrefslogtreecommitdiffstats
path: root/assets/css/components/_header.scss
blob: eb5438db417c02a1089dc3062555f79cb0df0cba (plain) (blame)
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
@include namespace('header') {
    @include store((
        --colors: (
            --bg:     prop(--colors --bg-lo, $global: true),
            --fg:     prop(--colors --fg-lo, $global: true),
            --border: prop(--colors --bg, $global: true),
            --hover: (
                --bg: prop(--colors --fg-lo, $global: true),
                --fg: prop(--colors --bg-hi, $global: true),
            ),
            --active: (
                --fg: prop(--colors --fg-lo, $global: true),
            )
        ),
        --dims: (
            --height: 4rem,
            --icon:   1.5rem,
            --pad-x: calc(0.5 * (var(--header--dims--height) - var(--header--dims--icon))),
        )
    ));

    @include store((
        --colors: (
            --bg: prop(--colors --bg-hi, $global: true),
        )
    ), 'light');

    @include component(namespace()) {
        height:  prop(--dims --height);

        @include element('nav') {
            display:    inline-flex;
            height:     100%;
            box-shadow: prop(--dims --obj-shadow, $global: true) prop(--colors --obj-shadow, $global: true);
        }

        @include element('item') {
            padding:          0 prop(--dims --pad-x);
            line-height:      prop(--dims --height);
            color:            prop(--colors --fg);
            background-color: prop(--colors --bg);
            text-decoration:  none;
            transition:       background-color .2s, color .2s;

            &:hover {
                color:            prop(--colors --hover --fg);
                background-color: prop(--colors --hover --bg);
            }

            @include next-twin-element {
                //padding-left: calc(0.5 * #{prop(--dims --pad-x)});
                //margin-left: calc(-0.5 * #{prop(--dims --pad-x)});
                border-left: 1px solid prop(--colors --border);
            }

            @include modifier('icon') {
                display:         flex;
                align-items:     center;
                justify-content: center;
            }

            @include modifier('active') {
                font-weight: bold;
                color:       prop(--colors --active --fg);
            }
        }

        @include element('icon') {
            width:  prop(--dims --icon);
            height: prop(--dims --icon);
        }
    }
}