blob: 05357611af26a63d48bde58b9d0fa5c572164c1d [file] [log] [blame]
Adrià Vilanova Martínez5af86512023-12-02 20:44:16 +01001/*
2 * hores
3 * Copyright (c) 2023 Adrià Vilanova Martínez
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public
16 * License along with this program.
17 * If not, see http://www.gnu.org/licenses/.
18 */
Copybara botbe50d492023-11-30 00:16:42 +010019.schedule {
20 display: inline-flex;
21 flex: none;
22 border: 1px solid rgba(0,0,0,.12);
23
24 --hour-height: 30px;
25}
26
27.schedule .sidetime {
28 padding-top: 36px;
29 width: 40px;
30}
31
32.schedule .sidetime .hour {
33 position: relative;
34 height: var(--hour-height);
35}
36
37.schedule .sidetime .hour .hour--text {
38 position: absolute;
39 top: -9px;
40 right: 7px;
41 font-size: 11px;
42}
43
44.schedule .day {
45 flex: 1 0 auto;
46 width: 100px;
47 min-width: 100px;
48}
49
50.schedule .day .day--header {
51 text-align: center;
52 box-sizing: content-box;
53 height: 20px;
54 font-size: 18px;
55 font-weight: 300;
56 padding: 8px 0;
57 border-bottom: solid 1px #ccc;
58}
59
60.schedule .day .day--content {
61 position: relative;
62}
63
64.schedule .day .day--content .hour {
65 height: Calc(var(--hour-height) - 1px);
66}
67
68.schedule .day .day--content .hour:not(:last-child) {
69 border-bottom: solid 1px #ddd;
70}
71
72.schedule .day .day--content .hour:last-child, .schedule .sidetime .hour:last-child {
73 height: 13px;
74}
75
76.schedule .day .day--content .work-event, .schedule .day .day--content .inline-event {
77 position: absolute;
78 border-radius: 3px;
79 overflow-y: auto;
80}
81
82.schedule .day .day--content .event--actions {
83 position: absolute;
84 top: 4px;
85 right: 4px;
86 line-height: 14px;
87 background: #00000077;
88 border-radius: 5px;
89 z-index: 2;
90}
91
92.schedule .day .day--content .event--actions .material-icons {
93 color: white;
94 font-size: 20px;
95}
96
97.schedule .day .day--content .event--header, .schedule .day .day--content .event--body {
98 text-align: left;
99 font-size: 11px;
100}
101
102.schedule .day .day--content .work-event {
103 left: 4px;
104 width: 92px;
105 background: #2E7D32;
106}
107
108.schedule .day .day--content .work-event .event--header, .schedule .day .day--content .work-event .event--body {
109 line-height: 14px;
110 color: white;
111}
112
113.schedule .day .day--content .work-event .event--header {
114 margin: 5px 5px 0 5px;
115 font-weight: bold;
116}
117
118.schedule .day .day--content .work-event .event--body {
119 margin: 0 5px;
120}
121
122.schedule .day .day--content .inline-event {
123 left: 3px;
124 width: 86px;
125 background: #81C784;
126}
127
128.schedule .day .day--content .inline-event .event--header {
129 font-weight: 500;
130}
131
132.schedule .day .day--content .inline-event .event--header, .schedule .day .day--content .inline-event .event--body {
133 line-height: 14px;
134 margin: 0 5px;
135 color: black;
136}
137
138@media (hover: hover) {
139 .schedule .day .day--content .event--actions {
140 opacity: 0;
141 transition: opacity 0.15s ease-in;
142 background: #00000099;
143 }
144
145 .schedule .day .day--content .work-event:hover .event--actions {
146 opacity: 1;
147 }
148}