xref: /plugin/mikioplugin/assets/styles.less (revision a928e5760d5b0771c6841475252840140dbbc929)
1/* Utilites */
2@-webkit-keyframes progress-bar-stripes {
3  from {
4    background-position: 1rem 0;
5  }
6
7  to {
8    background-position: 0 0;
9  }
10}
11
12@keyframes progress-bar-stripes {
13  from {
14    background-position: 1rem 0;
15  }
16
17  to {
18    background-position: 0 0;
19  }
20}
21
22.user-select(@select: none) {
23  -webkit-user-select: @select;
24  -moz-user-select: @select;
25  -ms-user-select: @select;
26  user-select: @select;
27}
28
29.appearance(@appearance: none) {
30  -webkit-appearance: @appearance;
31  -moz-appearance: @appearance;
32}
33
34.display-flex {
35  display: -ms-flexbox;
36  display: flex;
37}
38
39.flex(@val) {
40  -ms-flex: @val;
41  flex: @val;
42}
43
44.flex-direction(@direction) {
45  -ms-flex-direction: @direction;
46  flex-direction: @direction;
47}
48
49.justify-content(@justify) {
50  -ms-flex-pack: @justify;
51  justify-content: @justify;
52}
53
54.align-items(@align) {
55  -ms-align-items: @align;
56  align-items: @align;
57}
58
59.flex-wrap(@wrap) {
60  -webkit-flex-wrap: @wrap;
61  -moz-flex-wrap: @wrap;
62  flex-wrap: @wrap;
63}
64
65.animation(@val) {
66  -webkit-animation: @val;
67  animation: @val;
68}
69
70._mikiop-btn-type(@type: 'primary') {
71  @color: var(~'--button-@{type}-text-color');
72  @background: var(~'--button-@{type}-background-color');
73  @border: var(~'--button-@{type}-border-color');
74  @hovercolor: var(~'--button-@{type}-text-hover-color');
75  @hoverbackground: var(~'--button-@{type}-background-hover-color');
76  @hoverborder: var(~'--button-@{type}-border-hover-color');
77
78  color: @color;
79  background-color: @background;
80  border-color: @border;
81
82  &.mikiop-active {
83    color: @hovercolor;
84    background-color: @hoverbackground;
85    border-color: @hoverborder;
86  }
87
88  &:disabled,
89  &.mikiop-disabled {
90    opacity: 0.65;
91  }
92
93  &:hover:not(.mikiop-disabled) {
94    color: @hovercolor;
95    background-color: @hoverbackground;
96    border-color: @hoverborder;
97  }
98
99  &.mikiop-disabled:hover {
100    cursor: default;
101  }
102}
103
104._mikiop-btn-type(@type) when (@type = 'link') {
105  &:hover {
106    text-decoration: underline;
107  }
108}
109
110._mikiop-btn-types {
111  &.mikiop-type-primary {
112    ._mikiop-btn-type('primary');
113  }
114  &.mikiop-type-outline-primary {
115    ._mikiop-btn-type('outline-primary');
116  }
117  &.mikiop-type-secondary {
118    ._mikiop-btn-type('secondary');
119  }
120  &.mikiop-type-outline-secondary {
121    ._mikiop-btn-type('outline-secondary');
122  }
123  &.mikiop-type-success {
124    ._mikiop-btn-type('success');
125  }
126  &.mikiop-type-outline-success {
127    ._mikiop-btn-type('outline-success');
128  }
129  &.mikiop-type-danger {
130    ._mikiop-btn-type('danger');
131  }
132  &.mikiop-type-outline-danger {
133    ._mikiop-btn-type('outline-danger');
134  }
135  &.mikiop-type-warning {
136    ._mikiop-btn-type('warning');
137  }
138  &.mikiop-type-outline-warning {
139    ._mikiop-btn-type('outline-warning');
140  }
141  &.mikiop-type-info {
142    ._mikiop-btn-type('info');
143  }
144  &.mikiop-type-outline-info {
145    ._mikiop-btn-type('outline-info');
146  }
147  &.mikiop-type-light {
148    ._mikiop-btn-type('light');
149  }
150  &.mikiop-type-outline-light {
151    ._mikiop-btn-type('outline-light');
152  }
153  &.mikiop-type-dark {
154    ._mikiop-btn-type('dark');
155  }
156  &.mikiop-type-outline-dark {
157    ._mikiop-btn-type('outline-dark');
158  }
159  &.mikiop-type-link {
160    ._mikiop-btn-type('link');
161  }
162}
163
164._mikiop-btn-sizes(@padding: 1) {
165  &.mikiop-size-small {
166    font-size: 0.875em;
167    border-radius: 0.2em;
168  }
169
170  &.mikiop-size-small when (@padding = 0) {
171    padding: 0;
172  }
173
174  &.mikiop-size-small when (@padding = 1) {
175    padding: 0.25em 0.5em;
176  }
177
178  &.mikiop-size-large {
179    font-size: 1.25em;
180    border-radius: 0.3em;
181  }
182
183  &.mikiop-size-large when (@padding = 0) {
184    padding: 0;
185  }
186
187  &.mikiop-size-large when (@padding = 1) {
188    padding: 0.5em 1em;
189  }
190}
191
192._mikiop-block-type(@type: 'primary', @sel: 'button') {
193  @color: var(~'--@{sel}-@{type}-text-color');
194  @background: var(~'--@{sel}-@{type}-background-color');
195  @border: var(~'--@{sel}-@{type}-border-color');
196
197  color: @color;
198  background-color: @background;
199  border-color: @border;
200
201  a {
202    color: @color;
203  }
204}
205
206._mikiop-block-types {
207  &.mikiop-type-primary {
208    ._mikiop-block-type('primary');
209  }
210  &.mikiop-type-secondary {
211    ._mikiop-block-type('secondary');
212  }
213  &.mikiop-type-success {
214    ._mikiop-block-type('success');
215  }
216  &.mikiop-type-danger {
217    ._mikiop-block-type('danger');
218  }
219  &.mikiop-type-warning {
220    ._mikiop-block-type('warning');
221  }
222  &.mikiop-type-info {
223    ._mikiop-block-type('info');
224  }
225  &.mikiop-type-light {
226    ._mikiop-block-type('light');
227  }
228  &.mikiop-type-dark {
229    ._mikiop-block-type('dark');
230  }
231}
232
233._mikiop-alert-types {
234  &.mikiop-type-primary {
235    ._mikiop-block-type('primary', 'alert');
236  }
237  &.mikiop-type-secondary {
238    ._mikiop-block-type('secondary', 'alert');
239  }
240  &.mikiop-type-success {
241    ._mikiop-block-type('success', 'alert');
242  }
243  &.mikiop-type-danger {
244    ._mikiop-block-type('danger', 'alert');
245  }
246  &.mikiop-type-warning {
247    ._mikiop-block-type('warning', 'alert');
248  }
249  &.mikiop-type-info {
250    ._mikiop-block-type('info', 'alert');
251  }
252  &.mikiop-type-light {
253    ._mikiop-block-type('light', 'alert');
254  }
255  &.mikiop-type-dark {
256    ._mikiop-block-type('dark', 'alert');
257  }
258}
259
260._mikiop-col(@width) {
261  .flex(0 0 @width);
262  max-width: @width;
263}
264
265._mikiop-shadows {
266  &.mikiop-shadow {
267    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.35);
268  }
269
270  &.mikiop-shadow-small {
271    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.275);
272  }
273
274  &.mikiop-shadow-large {
275    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.375);
276  }
277}
278
279._mikiop-text-align {
280  &.mikiop-text-align-left {
281    text-align: left;
282  }
283
284  &.mikiop-text-align-center {
285    text-align: center;
286  }
287
288  &.mikiop-text-align-right {
289    text-align: right;
290  }
291}
292
293._mikiop-flex-text-align {
294  &.mikiop-text-align-left {
295    .align-items(flex-start);
296  }
297
298  &.mikiop-text-align-center {
299    .align-items(center);
300  }
301
302  &.mikiop-text-align-right {
303    .align-items(flex-end);
304  }
305}
306
307._mikiop-align {
308  &.mikiop-align-left {
309    margin-right: auto;
310  }
311
312  &.mikiop-align-center {
313    margin-left: auto;
314    margin-right: auto;
315  }
316
317  &.mikiop-align-right {
318    margin-left: auto;
319  }
320}
321
322._mikiop-vertical-align {
323  &.mikiop-vertical-align-top {
324    .justify-content(flex-start);
325  }
326
327  &.mikiop-vertical-align-middle {
328    .justify-content(center);
329  }
330
331  &.mikiop-vertical-align-bottom {
332    .justify-content(flex-end);
333  }
334}
335
336._mikiop-nowrap {
337  white-space: nowrap;
338}
339
340._mikiop-button {
341  display: inline-block;
342  text-decoration: none;
343  font-weight: 400;
344  text-align: center;
345  vertical-align: center;
346  .user-select(none);
347  .appearance(none);
348  background-color: transparent;
349  border: 1px solid transparent;
350  padding: 0.375em 0.75em;
351  font-size: 1em;
352  line-height: 1.5;
353  border-radius: 0.25em;
354  transition: all 0.15s ease-in-out;
355  margin-top: 0.25em;
356  margin-bottom: 0.25em;
357  margin-left: 0.25em;
358  margin-right: 0.25em;
359}
360
361.mikiop-tooltip-banner {
362  position: absolute;
363  z-index: 100000;
364  padding: 0.25em 0.5em;
365  background: var(--tooltip-background-color);
366  color: var(--tooltip-text-color);
367  border: 1px solid var(--tooltip-border-color);
368  border-radius: 0.25em;
369  font-size: 80%;
370  box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.35);
371}
372
373#dokuwiki__content {
374  .mikiop-links-match a {
375    color: inherit;
376  }
377
378  .mikiop-accordian {
379    border: 1px solid var(--accordian-border-color);
380    border-radius: 0.25em;
381    margin-bottom: 1em;
382    overflow: hidden;
383
384    ._mikiop-shadows;
385
386    .mikiop-accordian-item {
387      ._mikiop-alert-types;
388      ._mikiop-text-align;
389
390      .mikiop-accordian-title {
391        text-decoration: none;
392        display: block;
393        padding: 0.75em 1.25em;
394        background-color: var(--accordian-title-background-color);
395        border-bottom: 1px solid var(--accordian-border-color);
396      }
397
398      .mikiop-accordian-body {
399        display: none;
400        min-height: 1px;
401        padding: 1.25em;
402
403        p:last-child {
404          margin: 0;
405        }
406      }
407    }
408
409    .mikiop-accordian-item.mikiop-show {
410      .mikiop-accordian-body {
411        display: block;
412      }
413    }
414
415    .mikiop-accordian-item:not(:last-child) {
416      .mikiop-accordian-body {
417        border-bottom: 1px solid var(--accordian-border-color);
418      }
419    }
420
421    .mikiop-accordian-item:last-child {
422      .mikiop-accordian-title {
423        border-bottom: 0;
424      }
425
426      .mikiop-accordian-body {
427        border-top: 1px solid var(--accordian-border-color);
428      }
429    }
430  }
431
432  .mikiop-alert {
433    .display-flex;
434    .flex-direction(row);
435    ._mikiop-alert-types;
436    ._mikiop-shadows;
437    ._mikiop-align;
438    ._mikiop-text-align;
439    padding: 0.75em 1.25em;
440    margin-bottom: 1em;
441    border: 1px solid transparent;
442    border-radius: 0.25em;
443    position: relative;
444
445    .mikiop-alert-icon {
446      padding-right: 0.5em;
447    }
448
449    &.mikiop-dismissible .mikiop-alert-content {
450      padding-right: 2em;
451    }
452
453    .mikiop-alert-content {
454      width: 100%;
455      ._mikiop-text-align;
456      ._mikiop-align;
457
458      span.curid a,
459      a {
460        text-decoration: none;
461        color: inherit;
462        font-weight: 700;
463
464        &:hover {
465          text-decoration: underline;
466        }
467      }
468
469      p:last-child {
470        margin-bottom: 0;
471      }
472
473      .mikiop-alert-close {
474        position: absolute;
475        top: 0;
476        right: 0;
477        padding: 0.5em 0.75em;
478        background-color: transparent;
479        border: 0;
480        font-size: 1.5em;
481        font-weight: 700;
482        line-height: 1;
483        opacity: 0.5;
484        text-decoration: none;
485        transition: all 0.15s ease-in-out;
486
487        &:hover {
488          opacity: 1;
489          text-decoration: none;
490        }
491      }
492
493      ul {
494        list-style: disc;
495
496        li,
497        .li {
498          color: inherit;
499        }
500      }
501    }
502  }
503
504  .mikiop-badge {
505    display: inline-block;
506    padding: 0.25em 0.4em;
507    font-size: 70%;
508    font-weight: 700;
509    line-height: 1;
510    text-align: center;
511    white-space: nowrap;
512    vertical-align: baseline;
513    border-radius: 0.25em;
514    transition: all 0.15s ease-in-out;
515    ._mikiop-block-types;
516    text-decoration: none;
517
518    &.mikiop-badge-pill {
519      padding-right: 0.6em;
520      padding-left: 0.6em;
521      border-radius: 10em;
522    }
523
524    ._mikiop-shadows;
525    ._mikiop-text-align;
526  }
527
528  .mikiop-blockquote {
529    margin-bottom: 1em;
530    padding: 0;
531    font-size: 1.25em;
532    border: 0;
533    ._mikiop-text-align;
534
535    p {
536      margin-bottom: 0;
537    }
538
539    .mikiop-blockquote-footer {
540      &:before {
541        content: '\2014\00A0';
542      }
543
544      display: block;
545      font-size: 80%;
546      color: var(--blockquote-footer-text-color);
547    }
548  }
549
550  .mikiop-box {
551    position: relative;
552    .display-flex;
553    .flex-direction(column);
554    padding: 0;
555    border: 1px solid transparent;
556    margin-bottom: 1em;
557
558    ._mikiop-block-types;
559    ._mikiop-shadows;
560    ._mikiop-text-align;
561    ._mikiop-vertical-align;
562
563    p,
564    img,
565    a.media,
566    svg,
567    span.curid,
568    .mikiop-placeholder {
569      width: 100%;
570      height: 100%;
571      object-fit: cover;
572      overflow: hidden;
573      border-radius: inherit;
574      margin: 0;
575    }
576
577    p:last-child {
578      margin-bottom: 0;
579    }
580
581    .mikiop-reveal {
582      position: absolute;
583      display: flex;
584      justify-content: center;
585      align-items: center;
586      top: 0;
587      left: 0;
588      height: 100%;
589      width: 100%;
590      background-color: var(--reveal-background-color);
591      color: var(--reveal-text-color);
592      font-weight: 500;
593    }
594  }
595
596  a.mikiop-box {
597    text-decoration: none;
598    transition: all 0.15s ease-in-out;
599
600    &:hover {
601      background-color: var(--box-background-color);
602    }
603  }
604
605  .mikiop-button {
606    ._mikiop-button;
607    color: var(--button-secondary-text-color);
608
609    &:hover {
610      color: var(--button-secondary-text-hover-color);
611      text-decoration: none;
612    }
613
614    ._mikiop-btn-types;
615    ._mikiop-btn-sizes;
616    ._mikiop-shadows;
617    ._mikiop-text-align;
618    ._mikiop-align;
619    .mikiop-nowrap {
620      ._mikiop-nowrap;
621    }
622    &.mikiop-block {
623      display: block;
624    }
625
626    .mikiop-badge {
627      position: relative;
628      top: -1px;
629    }
630  }
631
632  .mikiop-button-group {
633    ._mikiop-btn-sizes(0);
634
635    &.mikiop-shadow .mikiop-button-group-inner {
636      box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.35);
637    }
638
639    &.mikiop-shadow-small .mikiop-button-group-inner {
640      box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.275);
641    }
642
643    &.mikiop-shadow-large .mikiop-button-group-inner {
644      box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.375);
645    }
646
647    &.mikiop-align-left {
648      text-align: left;
649    }
650
651    &.mikiop-align-center {
652      text-align: center;
653    }
654
655    &.mikiop-align-right {
656      text-align: right;
657    }
658
659    &.mikiop-vertical .mikiop-button-group-inner {
660      .flex-direction(column);
661      .justify-content(center);
662
663      .mikiop-button:not(:last-child) {
664        border-bottom-left-radius: 0;
665        border-bottom-right-radius: 0;
666      }
667
668      .mikiop-button:not(:first-child) {
669        border-top-left-radius: 0;
670        border-top-right-radius: 0;
671      }
672    }
673
674    &:not(.mikiop-vertical) .mikiop-button:not(:last-child) {
675      border-top-right-radius: 0;
676      border-bottom-right-radius: 0;
677    }
678
679    &:not(.mikiop-vertical) .mikiop-button:not(:first-child) {
680      border-top-left-radius: 0;
681      border-bottom-left-radius: 0;
682    }
683
684    .mikiop-button-group-inner {
685      position: relative;
686      display: inline-flex;
687      vertical-align: middle;
688      margin-top: 0.25em;
689      margin-bottom: 0.25em;
690
691      .mikiop-button {
692        position: relative;
693        flex: 1 1 auto;
694        margin: 0;
695      }
696    }
697  }
698
699  .mikiop-card {
700    position: relative;
701    .display-flex;
702    .flex-direction(column);
703    word-wrap: break-word;
704    background-color: var(--card-background-color);
705    background-clip: border-box;
706    border: 1px solid var(--card-border-color);
707    border-radius: 0.25em;
708    margin-bottom: 2em;
709    overflow: hidden;
710    margin: 0.75em;
711    .flex(1);
712    height: 100%;
713
714    ._mikiop-shadows;
715    ._mikiop-block-types;
716    ._mikiop-text-align;
717
718    .mikiop-card-body {
719      .display-flex;
720      .flex(1 1 100%);
721      .flex-direction(column);
722      ._mikiop-vertical-align;
723      // min-height: 1px;
724      padding: 1.25em;
725      box-sizing: border-box;
726
727      p {
728        margin-top: 0;
729      }
730
731      .mikiop-card-footer {
732        display: flex;
733        flex: 1;
734        flex-direction: column;
735        justify-content: flex-end;
736        border-top: 0;
737        padding: 0;
738      }
739    }
740
741    .mikiop-card-header {
742      padding: 0.75em 1.25em;
743      background-color: var(--card-header-background-color);
744      border-bottom: 1px solid var(--card-border-color);
745    }
746
747    .mikiop-card-footer {
748      padding: 0.75em 1.25em;
749      background-color: var(--card-footer-background-color);
750      border-top: 1px solid var(--card-border-color);
751      color: var(--card-footer-text-color);
752
753      small {
754        font-size: 80%;
755      }
756    }
757
758    .mikiop-card-title {
759      font-size: 1.25em;
760      font-weight: 600;
761      margin-bottom: 0.75em;
762      margin-top: 0;
763    }
764
765    .mikiop-card-subtitle {
766      color: var(--card-subtitle-text-color);
767      font-weight: 600;
768      margin-top: -1em;
769      margin-bottom: 0.5em;
770    }
771
772    &.mikiop-horizontal {
773      display: grid;
774      grid-template-columns: 33.333333% 66.666667%;
775
776      .mikiop-card-horizontal-image {
777        overflow: hidden;
778        margin-bottom: -1px;
779
780        .mikiop-placeholder {
781          height: 101%;
782        }
783      }
784
785      .mikiop-card-header,
786      .mikiop-card-footer {
787        border: 0;
788        background-color: transparent;
789      }
790
791      .mikiop-card-body {
792        justify-content: center;
793        height: 100%;
794      }
795    }
796
797    &.mikiop-overlay {
798      img,
799      a.media,
800      svg,
801      span.curid,
802      .mikiop-placeholder {
803        position: absolute;
804        border-radius: inherit;
805      }
806
807      .mikiop-placeholder {
808        height: 101%;
809      }
810
811      .mikiop-card-header,
812      .mikiop-card-footer {
813        border: 0;
814        background-color: transparent;
815      }
816
817      div,
818      p {
819        z-index: 2;
820      }
821    }
822
823    p:last-child,
824    .mikiop-blockquote {
825      margin-bottom: 0;
826    }
827
828    img,
829    a.media,
830    svg,
831    span.curid,
832    .mikiop-placeholder {
833      width: 100%;
834      height: 100%;
835      object-fit: contain;
836      overflow: hidden;
837      margin: 0;
838
839      &:first-child {
840        border-top-left-radius: inherit;
841        border-top-right-radius: inherit;
842      }
843
844      &:last-child {
845        border-bottom-left-radius: inherit;
846        border-bottom-right-radius: inherit;
847      }
848
849      &.mikiop-image-cover {
850        object-fit: cover;
851      }
852    }
853
854    .mikiop-placeholder {
855      margin-top: -1px;
856      margin-left: -1px;
857      width: 101%;
858    }
859  }
860
861  .mikiop-carousel {
862    position: relative;
863    margin-bottom: 2em;
864    height: 40em;
865
866    &.mikiop-image-cover {
867      .mikiop-carousel-inner img {
868        object-fit: cover;
869      }
870    }
871
872    .mikiop-carousel-inner {
873      position: relative;
874      width: 100%;
875      height: 100%;
876      overflow: hidden;
877    }
878
879    .mikiop-carousel-item {
880      display: none;
881      position: absolute;
882      top: 0;
883      left: 0;
884      bottom: 0;
885      width: 100%;
886
887      &.mikiop-active {
888        z-index: 1;
889        display: block;
890      }
891
892      .mikiop-placeholder {
893        width: 100%;
894        height: 100%;
895      }
896
897      .mikiop-carousel-caption {
898        background-color: var(--carousel-caption-background-color);
899        position: absolute;
900        bottom: 0;
901        left: 0;
902        right: 0;
903        text-align: center;
904        padding: 2em;
905
906        .mikiop-carousel-caption-title,
907        .mikiop-carousel-caption-title a {
908          font-size: 1.25em;
909          margin-bottom: 0.5em;
910          font-weight: 500;
911          line-height: 1.2;
912          color: var(--carousel-text-color);
913        }
914
915        .mikiop-carousel-caption-title a {
916          &:hover {
917            text-decoration: underline;
918          }
919        }
920
921        p {
922          color: var(--carousel-caption-text-color);
923          margin-bottom: 0;
924        }
925      }
926
927      img {
928        width: 100%;
929        height: 100%;
930        object-fit: contain;
931        overflow: hidden;
932      }
933    }
934
935    .mikiop-carousel-control {
936      position: absolute;
937      z-index: 1;
938      top: 40%;
939      bottom: 40%;
940      .display-flex;
941      .justify-content(center);
942      .align-items(center);
943      width: 15%;
944      text-align: center;
945      opacity: 0.5;
946      transition: all 0.15s ease;
947      background-repeat: no-repeat;
948      background-size: 2em;
949      background-position: 50%;
950
951      &.mikiop-carousel-control-next {
952        right: 0;
953      }
954
955      svg {
956        fill: var(--carousel-control-fill-color);
957        stroke: var(--carousel-control-stroke-color);
958        stroke-width: 0.2px;
959      }
960
961      &:hover {
962        opacity: 1;
963      }
964    }
965
966    .mikiop-carousel-indicators {
967      position: absolute;
968      right: 0;
969      bottom: 0;
970      left: 0;
971      z-index: 15;
972      margin: 0.5em 0 0 0;
973      padding: 0;
974      .display-flex;
975      .justify-content(center);
976      list-style: none;
977
978      .mikiop-carousel-indicator {
979        width: 30px;
980        height: 3px;
981        margin: 1em 0.25em;
982        padding: 0;
983        background-color: var(--carousel-indicator-color);
984        transition: all 0.6s ease;
985        opacity: 0.5;
986
987        &.mikiop-active {
988          opacity: 1;
989        }
990      }
991
992      &.mikiop-carousel-indicators-circle {
993        .mikiop-carousel-indicator {
994          border: 1px solid var(--carousel-indicator-color);
995          border-radius: 50%;
996          width: 10px;
997          height: 10px;
998        }
999      }
1000    }
1001  }
1002
1003  .mikiop-col {
1004    .flex(1 0 0);
1005    .display-flex;
1006    .flex-direction(column);
1007    .justify-content(space-between);
1008    margin: 0;
1009    box-sizing: border-box;
1010    border-style: solid;
1011    border-width: 0;
1012
1013    &.mikiop-col-1 {
1014      ._mikiop-col(8.333333%);
1015    }
1016    &.mikiop-col-2 {
1017      ._mikiop-col(16.666667%);
1018    }
1019    &.mikiop-col-3 {
1020      ._mikiop-col(25%);
1021    }
1022    &.mikiop-col-4 {
1023      ._mikiop-col(33.333333%);
1024    }
1025    &.mikiop-col-5 {
1026      ._mikiop-col(41.666667%);
1027    }
1028    &.mikiop-col-6 {
1029      ._mikiop-col(50%);
1030    }
1031    &.mikiop-col-7 {
1032      ._mikiop-col(58.333333%);
1033    }
1034    &.mikiop-col-8 {
1035      ._mikiop-col(66.666667%);
1036    }
1037    &.mikiop-col-9 {
1038      ._mikiop-col(75%);
1039    }
1040    &.mikiop-col-10 {
1041      ._mikiop-col(83.333333%);
1042    }
1043    &.mikiop-col-11 {
1044      ._mikiop-col(91.666667%);
1045    }
1046    &.mikiop-col-12 {
1047      ._mikiop-col(100%);
1048    }
1049
1050    &:first-child {
1051      padding-left: 0;
1052    }
1053
1054    &:last-child {
1055      padding-right: 0;
1056    }
1057
1058    .mikiop-card {
1059      margin-bottom: 0;
1060    }
1061
1062    &.mikiop-col-full {
1063      .flex(0 0 100%);
1064    }
1065  }
1066
1067  .mikiop-grid {
1068    display: grid;
1069    box-sizing: border-box;
1070
1071    .mikiop-box {
1072      margin: 0;
1073    }
1074  }
1075
1076  .mikiop-heading {
1077    margin-top: 0;
1078    margin-bottom: 0.5em;
1079  }
1080
1081  .mikiop-hr {
1082    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1083    border-top: 1px solid rgba(0, 0, 0, 0.1);
1084  }
1085
1086  .mikiop-list-group {
1087    .display-flex;
1088    .flex-direction(column);
1089
1090    list-style: none;
1091    border-radius: 0.25em;
1092    padding-left: 0;
1093
1094    ._mikiop-shadows;
1095
1096    .mikiop-list-group-item {
1097      .display-flex;
1098      .align-items(center);
1099      .justify-content(space-between);
1100
1101      color: inherit;
1102      padding: 0.75rem 1.25rem;
1103      margin: 0;
1104      border: 1px solid var(--listgroup-item-border-color);
1105      box-sizing: border-box;
1106
1107      ._mikiop-alert-types;
1108
1109      &.mikiop-content-vertical {
1110        .flex-direction(column);
1111        .align-items(flex-start);
1112        ._mikiop-flex-text-align;
1113      }
1114
1115      & + .mikiop-list-group-item {
1116        border-top-width: 0;
1117      }
1118
1119      &:first-child {
1120        border-top-left-radius: 0.25em;
1121        border-top-right-radius: 0.25em;
1122      }
1123
1124      &:last-child {
1125        border-bottom-left-radius: 0.25em;
1126        border-bottom-right-radius: 0.25em;
1127      }
1128
1129      &.mikiop-active {
1130        ._mikiop-block-type('primary');
1131      }
1132
1133      &.mikiop-disabled {
1134        opacity: 0.65;
1135        pointer-events: none;
1136      }
1137
1138      .mikiop-list-group-item-link {
1139        display: block;
1140        width: 100%;
1141        color: inherit;
1142        text-decoration: none;
1143        padding: 0.75rem 1.25rem;
1144        margin: -0.75rem -1.25rem;
1145
1146        &:hover {
1147          background-color: var(--listgroup-item-link-background-hover-color);
1148        }
1149      }
1150
1151      &.mikiop-active,
1152      &.mikiop-type-primary,
1153      &.mikiop-type-secondary,
1154      &.mikiop-type-success,
1155      &.mikiop-type-warning,
1156      &.mikiop-type-danger,
1157      &.mikiop-type-light,
1158      &.mikiop-type-dark {
1159        .mikiop-list-group-item-link:hover {
1160          background-color: inherit;
1161        }
1162      }
1163
1164      p:last-child {
1165        margin-bottom: 0;
1166      }
1167    }
1168
1169    &.mikiop-flush {
1170      margin-bottom: 0;
1171
1172      .mikiop-list-group-item {
1173        border-left-width: 0;
1174        border-right-width: 0;
1175
1176        &:first-child {
1177          border-top-width: 0;
1178        }
1179
1180        &:last-child {
1181          border-bottom-width: 0;
1182        }
1183      }
1184    }
1185
1186    &.mikiop-horizontal {
1187      .flex-direction(row);
1188
1189      .mikiop-list-group-item {
1190        & + .mikiop-list-group-item {
1191          border-top-width: 1px;
1192          border-left-width: 0;
1193        }
1194
1195        &:first-child {
1196          border-top-left-radius: 0.25em;
1197          border-top-right-radius: 0;
1198          border-bottom-left-radius: 0.25em;
1199        }
1200
1201        &:last-child {
1202          border-top-left-radius: 0;
1203          border-top-right-radius: 0.25em;
1204          border-bottom-right-radius: 0.25em;
1205        }
1206      }
1207    }
1208  }
1209
1210  .mikiop-pagenation {
1211    text-align: center;
1212
1213    .mikiop-pagenation-inner {
1214      display: inline-block;
1215      list-style: none;
1216      padding-left: 0;
1217
1218      .mikiop-pagenation-item {
1219        display: inline-block;
1220        padding: 0;
1221        border: 1px solid var(--pagenation-border-color);
1222        border-radius: 0.25em;
1223
1224        a {
1225          padding: 0.5em 0.75em;
1226          color: #007bff;
1227          text-decoration: none;
1228          display: block;
1229          background-color: var(--pagenation-link-background-color);
1230
1231          &:hover {
1232            text-decoration: none;
1233            background-color: var(--pagenation-link-background-hover-color);
1234          }
1235        }
1236
1237        &:not(:last-child) {
1238          border-right-width: 0;
1239          border-bottom-right-radius: 0;
1240          border-top-right-radius: 0;
1241        }
1242
1243        &:not(:first-child) {
1244          border-bottom-left-radius: 0;
1245          border-top-left-radius: 0;
1246        }
1247
1248        &.mikiop-active {
1249          a {
1250            background-color: var(--pagenation-link-text-color);
1251            color: var(--pagenation-link-background-color);
1252          }
1253        }
1254
1255        &.mikiop-disabled {
1256          a {
1257            pointer-events: none;
1258            opacity: 0.65;
1259          }
1260        }
1261      }
1262    }
1263  }
1264
1265  .mikiop-placeholder {
1266    display: flex;
1267
1268    svg {
1269      width: 100%;
1270      height: 100%;
1271    }
1272  }
1273
1274  .mikiop-progress {
1275    .display-flex;
1276    overflow: hidden;
1277    line-height: 0;
1278    font-size: 0.75em;
1279    background-color: var(--progressbar-background-color);
1280    border-radius: 0.25em;
1281    margin-bottom: 1em;
1282  }
1283
1284  .mikiop-progress-bar {
1285    .display-flex;
1286    .flex-direction(column);
1287    .justify-content(center);
1288    text-align: center;
1289    overflow: hidden;
1290    white-space: no-wrap;
1291    ._mikiop-block-types;
1292    transition: all 0.6s ease;
1293
1294    &.mikiop-striped {
1295      background-image: linear-gradient(
1296        45deg,
1297        rgba(255, 255, 255, 0.15) 25%,
1298        transparent 25%,
1299        transparent 50%,
1300        rgba(255, 255, 255, 0.15) 50%,
1301        rgba(255, 255, 255, 0.15) 75%,
1302        transparent 75%,
1303        transparent
1304      );
1305      background-size: 1em 1em;
1306    }
1307
1308    &.mikiop-animated {
1309      .animation(progress-bar-stripes 1s linear infinite);
1310    }
1311  }
1312
1313  .mikiop-row {
1314    .display-flex;
1315
1316    margin: 0;
1317    border-style: solid;
1318    border-width: 0;
1319
1320    &:first-child {
1321      padding-top: 0;
1322    }
1323
1324    &:last-child {
1325      padding-bottom: 0;
1326      margin-bottom: 2em;
1327    }
1328
1329    .mikiop-row {
1330      margin-bottom: 0;
1331    }
1332  }
1333
1334  .mikiop-statistic {
1335    font-size: 4em;
1336    text-align: center;
1337    display: inline-block;
1338    margin: 0 0.25em;
1339
1340    .mikiop-statistic-title {
1341      font-size: 0.3em;
1342      line-height: 0.3em;
1343    }
1344  }
1345
1346  .mikiop-steps {
1347    list-style: none;
1348    padding-left: 0;
1349    display: inline-flex;
1350
1351    ._mikiop-shadows;
1352
1353    .mikiop-step {
1354      position: relative;
1355      display: flex;
1356      align-items: center;
1357      padding: 1em 2em;
1358      border-width: 1px 0 1px 1px;
1359      border-style: solid;
1360      border-color: var(--steps-step-border-color);
1361      border-radius: 0.25em;
1362      margin-left: 0;
1363      color: var(--steps-step-text-color);
1364      background-color: var(--steps-step-background-color);
1365      font-size: 0.9em;
1366
1367      ._mikiop-alert-types;
1368
1369      a {
1370        color: inherit;
1371      }
1372
1373      .mikiop-step-icon {
1374        margin-right: 0.5em;
1375        font-size: 2em;
1376      }
1377
1378      .mikiop-step-title {
1379        font-size: 1.25em;
1380        font-weight: 500;
1381      }
1382
1383      &.mikiop-complete {
1384        background-color: var(--steps-step-background-complete-color);
1385
1386        &:after {
1387          background-color: inherit;
1388        }
1389      }
1390
1391      &:after {
1392        position: absolute;
1393        content: '';
1394        z-index: 2;
1395        border-width: 0 1px 1px 0;
1396        border-style: solid;
1397        border-color: var(--steps-step-border-color);
1398        background-color: var(--steps-step-background-color);
1399        top: 50%;
1400        right: 0;
1401        width: 16px;
1402        height: 16px;
1403        transform: translateY(-50%) translateX(50%) rotate(-45deg);
1404      }
1405
1406      &:not(:first-of-type) {
1407        border-top-left-radius: 0;
1408        border-bottom-left-radius: 0;
1409      }
1410
1411      &:not(:last-of-type) {
1412        border-top-right-radius: 0;
1413        border-bottom-right-radius: 0;
1414      }
1415
1416      &:last-of-type {
1417        border-right-width: 1px;
1418      }
1419
1420      &:last-of-type:after {
1421        display: none;
1422      }
1423
1424      p {
1425        margin-bottom: 0;
1426      }
1427    }
1428  }
1429
1430  .mikiop-tab-group {
1431    .display-flex;
1432    .flex-wrap(wrap);
1433    margin-bottom: 0;
1434    list-style: none;
1435
1436    background-color: var(--tabgroup-background-color);
1437    border: 1px solid var(--tabgroup-border-color);
1438    border-top-left-radius: 0.25em;
1439    border-top-right-radius: 0.25em;
1440    padding-left: 1em;
1441    padding-top: 0.5em;
1442
1443    .mikiop-tab-item {
1444      margin-left: 0;
1445
1446      a {
1447        color: var(--tabgroup-tab-text-color);
1448        text-decoration: none;
1449        border: 1px solid transparent;
1450        border-top-left-radius: 0.25em;
1451        border-top-right-radius: 0.25em;
1452        margin-bottom: -1px;
1453        display: block;
1454        padding: 0.5em 1em;
1455        transition: all 0.15s ease-in-out;
1456
1457        &:not(.mikiop-active):hover {
1458          border-color: var(--tabgroup-tab-border-hover-color) var(--tabgroup-tab-border-hover-color) var(--tabgroup-border-color);
1459          color: var(--tabgroup-tab-text-hover-color);
1460        }
1461
1462        &.mikiop-active {
1463          border-color: var(--tabgroup-border-color) var(--tabgroup-border-color) var(--tabgroup-tab-background-active-color);
1464          background-color: var(--tabgroup-tab-background-active-color);
1465          color: var(--tabgroup-tab-text-active-color);
1466        }
1467      }
1468
1469      &.mikiop-disabled {
1470        a {
1471          opacity: 0.65;
1472        }
1473
1474        pointer-events: none;
1475      }
1476    }
1477
1478    &.mikiop-pills {
1479      padding-bottom: 0.5em;
1480
1481      .mikiop-tab-item {
1482        a {
1483          ._mikiop-button;
1484          margin-right: 0.5em;
1485
1486          &.mikiop-active {
1487            ._mikiop-btn-type('primary');
1488          }
1489
1490          &:not(.mikiop-active):hover {
1491            border-color: transparent;
1492          }
1493        }
1494      }
1495    }
1496  }
1497
1498  .mikiop-tab-content {
1499    border-width: 0 1px 1px 1px;
1500    border-style: solid;
1501    border-color: var(--tabgroup-border-color);
1502    border-bottom-left-radius: 0.25em;
1503    border-bottom-right-radius: 0.25em;
1504    padding: 0.5em 1em;
1505    margin-bottom: 1em;
1506
1507    .mikiop-tab-pane {
1508      display: none;
1509
1510      &.mikiop-show {
1511        display: block;
1512      }
1513    }
1514  }
1515
1516  .mikiop-quiz {
1517    border: 1px solid var(--quiz-border-color);
1518    border-radius: 0.25em;
1519    margin-bottom: 2em;
1520
1521    // .mikiop-quiz-item {}
1522
1523    .mikiop-quiz-button-prev {
1524      ._mikiop-btn-type('secondary');
1525    }
1526
1527    .mikiop-quiz-button-next {
1528      ._mikiop-btn-type('secondary');
1529    }
1530
1531    .mikiop-quiz-button-submit {
1532      ._mikiop-btn-type('outline-secondary');
1533    }
1534
1535    .mikiop-quiz-question {
1536      font-weight: 500;
1537      font-size: 1.25em;
1538      padding: 1.25em 0.75em 0 1.25em;
1539    }
1540
1541    p {
1542      padding: 0 1.5em;
1543      margin-bottom: 0;
1544    }
1545
1546    .mikiop-quiz-options {
1547      padding: 0.75em 1.25em;
1548      margin-bottom: 0.5em;
1549    }
1550
1551    .mikiop-quiz-result {
1552      margin-bottom: 1em;
1553    }
1554
1555    .mikiop-quiz-option {
1556      input {
1557        margin: 0 0.5em;
1558      }
1559    }
1560
1561    .mikiop-quiz-status {
1562      padding: 0.75em 1.25em;
1563      background-color: var(--quiz-status-background-color);
1564      border-top: 1px solid rgba(0, 0, 0, 0.125);
1565      color: var(--quiz-status-text-color);
1566
1567      button {
1568        margin-left: 1em;
1569      }
1570    }
1571  }
1572}
1573
1574._mikiop-custom-type(@type) {
1575  #dokuwiki__content {
1576    .mikiop-button {
1577      &.mikiop-type-@{type} {
1578        ._mikiop-btn-type('@{type}');
1579      }
1580    }
1581
1582    .mikiop-badge,
1583    .mikiop-box,
1584    .mikiop-card,
1585    .mikiop-progress-bar {
1586      &.mikiop-type-@{type} {
1587        ._mikiop-block-type('@{type}');
1588      }
1589    }
1590
1591    .mikiop-accordian-item,
1592    .mikiop-alert,
1593    .mikiop-list-group,
1594    .mikiop-step {
1595      &.mikiop-type-@{type} {
1596        ._mikiop-block-type('@{type}', 'alert');
1597      }
1598    }
1599
1600    .mikiop-list-group-item {
1601      &.mikiop-type-@{type} {
1602        .mikiop-list-group-item-link:hover {
1603          background-color: inherit;
1604        }
1605      }
1606    }
1607  }
1608}
1609
1610@media (max-width: 768px) {
1611  #dokuwiki__content {
1612    .mikiop-row {
1613      .flex-wrap(wrap);
1614    }
1615
1616    .mikiop-col {
1617      .flex(0 0 100%);
1618      padding: 0;
1619    }
1620
1621    .mikiop-grid {
1622      .display-flex;
1623      .flex-direction(column);
1624    }
1625  }
1626}
1627