]> BookStack Code Mirror - bookstack/blob - resources/sass/_blocks.scss
Merge branch 'development' of github.com:BookStackApp/BookStack into development
[bookstack] / resources / sass / _blocks.scss
1 @use "mixins";
2 @use "vars";
3
4 /**
5  * Card-style blocks
6  */
7
8 .card {
9   @include mixins.lightDark(background-color, #FFF, #222);
10   box-shadow: vars.$bs-card;
11   border-radius: 3px;
12   break-inside: avoid;
13   .body, p.empty-text {
14     padding-block: vars.$m;
15   }
16   a, p {
17     word-wrap: break-word;
18     word-break: break-word;
19   }
20 }
21
22 .card-title {
23   padding: vars.$m vars.$m vars.$xs;
24   margin: 0;
25   font-size: vars.$fs-m;
26   color: #222;
27   fill: #222;
28   font-weight: 400;
29 }
30 .card-title a {
31   line-height: 1;
32 }
33 .card-footer-link, button.card-footer-link  {
34   display: block;
35   padding: vars.$s vars.$m;
36   line-height: 1;
37   border-top: 1px solid;
38   width: 100%;
39   text-align: left;
40   @include mixins.lightDark(border-color, #DDD, #555);
41   border-radius: 0 0 3px 3px;
42   font-size: 0.9em;
43   margin-top: vars.$xs;
44   &:hover {
45     text-decoration: none;
46     @include mixins.lightDark(background-color, #f2f2f2, #2d2d2d);
47   }
48   &:focus {
49     @include mixins.lightDark(background-color, #eee, #222);
50     outline: 1px dotted #666;
51     outline-offset: -2px;
52   }
53 }
54
55 .card.border-card {
56   border: 1px solid;
57   @include mixins.lightDark(border-color, #ddd, #000);
58 }
59
60 .card.drag-card {
61   border: 1px solid #DDD;
62   @include mixins.lightDark(border-color, #ddd, #000);
63   @include mixins.lightDark(background-color, #fff, #333);
64   border-radius: 4px;
65   display: flex;
66   padding: 0 0 0 (vars.$s + 28px);
67   margin: vars.$s 0;
68   position: relative;
69   .drag-card-action {
70     cursor: pointer;
71   }
72   .handle, .drag-card-action {
73     display: flex;
74     align-items: center;
75     text-align: center;
76     justify-content: center;
77     width: 28px;
78     flex-grow: 0;
79     padding: 0 vars.$xs;
80     &:hover {
81       @include mixins.lightDark(background-color, #eee, #2d2d2d);
82     }
83     .svg-icon {
84       margin-inline-end: 0px;
85     }
86   }
87   .outline input {
88     margin: vars.$s 0;
89     width: 100%;
90   }
91   .outline {
92     position: relative;
93   }
94   .handle {
95     @include mixins.lightDark(background-color, #eee, #2d2d2d);
96     left: 0;
97     position: absolute;
98     top: 0;
99     bottom: 0;
100   }
101   > div {
102     padding: 0 vars.$s;
103     max-width: 80%;
104     flex: 1;
105   }
106 }
107
108 .grid-card {
109   display: flex;
110   flex-direction: column;
111   border: 1px solid #ddd;
112   @include mixins.lightDark(border-color, #ddd, #000);
113   margin-bottom: vars.$l;
114   border-radius: 4px;
115   overflow: hidden;
116   min-width: 100px;
117   color: vars.$text-dark;
118   transition: border-color ease-in-out 120ms, box-shadow ease-in-out 120ms;
119   &:hover {
120     color: vars.$text-dark;
121     text-decoration: none;
122     @include mixins.lightDark(box-shadow, vars.$bs-card, vars.$bs-card-dark);
123   }
124   h2 {
125     width: 100%;
126     font-size: 1.5em;
127     margin: 0 0 10px;
128   }
129   p {
130     font-size: .7rem;
131     margin: 0;
132     line-height: 1.6em;
133   }
134   .grid-card-content {
135     flex: 1;
136     border-top: 0;
137     border-bottom-width: 2px;
138   }
139   .grid-card-content, .grid-card-footer {
140     padding: vars.$l;
141   }
142   .grid-card-content + .grid-card-footer {
143     padding-top: 0;
144   }
145 }
146
147 .book-grid-item .grid-card-footer {
148   p.small {
149     font-size: .8em;
150     margin: 0;
151   }
152 }
153
154 .content-wrap.card {
155   padding: vars.$m vars.$xxl;
156   margin-inline-start: auto;
157   margin-inline-end: auto;
158   margin-bottom: vars.$l;
159   overflow: initial;
160   min-height: 60vh;
161   border-radius: 8px;
162   &.auto-height {
163     min-height: 0;
164   }
165   &.fill-width {
166     width: 100%;
167   }
168 }
169 @include mixins.smaller-than(vars.$bp-xxl) {
170   .content-wrap.card {
171     padding: vars.$m vars.$xl;
172   }
173 }
174 @include mixins.smaller-than(vars.$bp-m) {
175   .content-wrap.card {
176     padding: vars.$m vars.$l;
177   }
178 }
179 @include mixins.smaller-than(vars.$bp-s) {
180   .content-wrap.card {
181     padding: vars.$m vars.$m;
182   }
183 }
184
185 .sub-card {
186   box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
187   border: 1.5px solid;
188   @include mixins.lightDark(border-color, #E2E2E2, #444);
189   border-radius: 4px;
190 }
191
192 .outline-hover {
193   border: 1px solid transparent !important;
194   &:hover {
195     border: 1px solid rgba(0, 0, 0, 0.1) !important;
196   }
197 }
198
199 .fade-in-when-active {
200   @include mixins.lightDark(opacity, 0.6, 0.7);
201   transition: opacity ease-in-out 120ms;
202   &:hover, &:focus-within {
203     opacity: 1 !important;
204   }
205   @media (prefers-contrast: more) {
206     opacity: 1 !important;
207   }
208 }
209
210 /**
211  * Tags
212  */
213 .tag-item {
214   display: inline-flex;
215   margin-bottom: vars.$xs;
216   margin-inline-end: vars.$xs;
217   border-radius: 4px;
218   border: 1px solid;
219   overflow: hidden;
220   font-size: 0.85em;
221   @include mixins.lightDark(border-color, #CCC, #666);
222   a, span, a:hover, a:active {
223     padding: 4px 8px;
224     @include mixins.lightDark(color, rgba(0, 0, 0, 0.7), rgba(255, 255, 255, 0.8));
225     transition: background-color ease-in-out 80ms;
226     text-decoration: none;
227   }
228   a:hover {
229     @include mixins.lightDark(background-color, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.3));
230   }
231   svg {
232     @include mixins.lightDark(fill, rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.5));
233   }
234   .tag-value {
235     border-inline-start: 1px solid;
236     @include mixins.lightDark(border-color, #DDD, #666);
237     @include mixins.lightDark(background-color, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2))
238   }
239 }
240
241 .tag-name.highlight, .tag-value.highlight {
242   font-weight: bold;
243 }
244
245 .tag-list div:last-child .tag-item {
246   margin-bottom: 0;
247 }
248
249 .item-list-row .tag-item {
250   margin-bottom: 0;
251 }
252
253 /**
254  * API Docs
255  */
256 .api-method {
257   font-size: 0.75rem;
258   background-color: #888;
259   padding: vars.$xs;
260   line-height: 1.3;
261   opacity: 0.7;
262   vertical-align: top;
263   border-radius: 3px;
264   color: #FFF;
265   display: inline-block;
266   min-width: 60px;
267   text-align: center;
268   font-weight: bold;
269   &[data-method="GET"] { background-color: #077b70 }
270   &[data-method="POST"] { background-color: #cf4d03 }
271   &[data-method="PUT"] { background-color: #0288D1 }
272   &[data-method="DELETE"] { background-color: #ab0f0e }
273 }
274
275 .sticky-sidebar {
276   position: sticky;
277   top: vars.$m;
278   max-height: calc(100vh - #{vars.$m});
279   overflow-y: auto;
280 }
Morty Proxy This is a proxified and sanitized view of the page, visit original site.