Newer
Older
import {css, unsafeCSS, CSSResult} from 'lit';

Reiter, Christoph
committed
import {getIconSVGURL} from './src/icon.js';
/**
* We want to have "neutral" colors here
*
* @returns {CSSResult}
*/
export function getThemeCSS() {
// language=css
return css`
/* new new variables */
--dbp-background:
var(--dbp-override-background, #ffffff
--dbp-on-content-surface:
var(--dbp-override-on-content-surface,
var(--dbp-background)
--dbp-border-radius:
var(--dbp-override-border-radius, 0px
--dbp-primary-surface:
var(--dbp-override-primary-surface,
var(--dbp-primary)
--dbp-on-primary-surface:
var(--dbp-override-on-primary-surface,
var(--dbp-on-content-surface)
--dbp-primary-surface-border-color:
var(--dbp-override-primary-surface-border-color,
--dbp-secondary-surface:
var(--dbp-override-secondary-surface,
var(--dbp-secondary)
--dbp-on-secondary-surface:
var(--dbp-override-on-secondary-surface,
var(--dbp-on-content-surface)
--dbp-secondary-surface-border-color:
var(--dbp-override-secondary-surface-border-color,
--dbp-muted:
var(--dbp-override-muted, #767676
var(--dbp-override-muted-surface,
var(--dbp-muted)
var(--dbp-override-on-muted-surface,
var(--dbp-on-content-surface)
--dbp-muted-surface-border-color:
var(--dbp-override-muted-surface-border-color,
--dbp-accent:
var(--dbp-override-accent, #9e1e4d
var(--dbp-override-accent-surface,
var(--dbp-accent)
var(--dbp-override-on-accent-surface,
var(--dbp-on-content-surface)
--dbp-accent-surface-border-color:
var(--dbp-override-accent-surface-border-color,
--dbp-info:
var(--dbp-override-info, #38808a
--dbp-info-surface:
var(--dbp-override-info-surface,
var(--dbp-info)
--dbp-on-info-surface:
var(--dbp-override-on-info-surface,
var(--dbp-on-content-surface)
--dbp-info-surface-border-color:
var(--dbp-override-info-surface-border-color,
--dbp-success:
var(--dbp-override-success, #338555
--dbp-success-surface:
var(--dbp-override-success-surface,
var(--dbp-success)
);
--dbp-on-success-surface:
var(--dbp-override-on-success-surface,
var(--dbp-on-content-surface)
);
--dbp-success-surface-border-color:
var(--dbp-override-success-surface-border-color,
--dbp-warning:
var(--dbp-override-warning, #bf8808
);
--dbp-warning-surface:
var(--dbp-override-warning-surface,
var(--dbp-warning)
);
--dbp-on-warning-surface:
var(--dbp-override-on-warning-surface,
var(--dbp-on-content-surface)
);
--dbp-warning-surface-border-color:
var(--dbp-override-warning-surface-border-color,
--dbp-danger:
var(--dbp-override-danger, #cc3232
--dbp-danger-surface:
var(--dbp-override-danger-surface,
var(--dbp-danger)
--dbp-on-danger-surface:
var(--dbp-override-on-danger-surface,
var(--dbp-on-content-surface)
--dbp-danger-surface-border-color:
var(--dbp-override-danger-surface-border-color,
var(--dbp-override-hover-background-color
);
background-color: var(--dbp-background);
color: var(--dbp-content);
color: var(--dbp-on-primary-surface);
background: var(--dbp-primary-surface);
color: var(--dbp-on-primary-surface);
background: var(--dbp-primary-surface);
export function getGeneralCSS(doMarginPaddingReset = true) {
// language=css
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
const marginPaddingResetCss = doMarginPaddingReset
? css`
blockquote,
body,
dd,
dl,
dt,
fieldset,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
html,
iframe,
legend,
li,
ol,
p,
pre,
textarea,
ul {
margin: 0;
padding: 0;
}
`
: css``;
h2 {
font-weight: 300;
}
h3{
font-weight: 300;
margin-top: 0px;
margin-bottom: 0.75rem;
}
.field:not(:last-child) {
margin-bottom: 0.75rem;
}
.field.has-addons {
display: flex;
justify-content: flex-start;
}
.input, .textarea, .select select {
border-radius: var(--dbp-border-radius);
padding-bottom: calc(.375em - 1px);
padding-left: calc(.625em - 1px);
padding-right: calc(.625em - 1px);
padding-top: calc(.375em - 1px);
}
.input::placeholder, .textarea::placeholder, .select select::placeholder {
input, ::placeholder, textarea, select, .select select {
font-size: inherit;
font-family: inherit;
}
input::-moz-focus-inner { border: 0; }
:focus-visible{
outline:none !important;
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: 0px 0px 3px 1px var(--dbp-primary);
.control {
box-sizing: border-box;
clear: both;
font-size: 1rem;
position: relative;
text-align: left;
}
.label {
margin-bottom: .5em;
display: block;
font-weight: 600;
}
.hidden { display: none; }
cursor: pointer;
text-decoration: none;
}
transition: background-color 0.15s, color 0.15s;
}
color: var(--dbp-hover-color, var(--dbp-content));
background-color: var(--dbp-hover-background-color);
font-size: 2rem;
font-weight: 600;
line-height: 1.125;
}
.button[disabled], .file-cta[disabled], .file-name[disabled], .input[disabled], .pagination-ellipsis[disabled],
.pagination-link[disabled], .pagination-next[disabled], .pagination-previous[disabled], .select fieldset[disabled] select,
.select select[disabled], .textarea[disabled], fieldset[disabled] .button, fieldset[disabled] .file-cta,
fieldset[disabled] .file-name, fieldset[disabled] .input, fieldset[disabled] .pagination-ellipsis,
fieldset[disabled] .pagination-link, fieldset[disabled] .pagination-next, fieldset[disabled] .pagination-previous,
fieldset[disabled] .select select, fieldset[disabled] .textarea {
cursor: not-allowed;
}
.input, .select select, .textarea {
background-color: var(--dbp-background);
border-color: var(--dbp-muted);
border-radius: var(--dbp-border-radius);
select:not(.select), .dropdown-menu {
-moz-appearance: none;
-webkit-appearance: none;
background: calc(100% - 0.2rem) center no-repeat url("${unsafeCSS(
getIconSVGURL('chevron-down')
)}");
background-size: 25%;
border-radius: var(--dbp-border-radius);
padding: 0.14rem 1.0rem 0.14rem 0.14rem;
}
color: var(--dbp-on-primary-surface);
background: var(--dbp-primary-surface);
color: var(--dbp-on-primary-surface);
background: var(--dbp-primary-surface);
export function getFormAddonsCSS() {
// language=css
return css`
.buttons.has-addons .button:not(:first-child) {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.buttons.has-addons .button:not(:last-child) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
margin-right: -1px;
}
.buttons.has-addons .button:last-child {
margin-right: 0;
}
.buttons.has-addons .button:hover,
.buttons.has-addons .button.is-hovered {
.buttons.has-addons .button:focus,
.buttons.has-addons .button.is-focused,
.buttons.has-addons .button:active,
.buttons.has-addons .button.is-active,
.buttons.has-addons .button.is-selected {
.buttons.has-addons .button:focus:hover,
.buttons.has-addons .button.is-focused:hover,
.buttons.has-addons .button:active:hover,
.buttons.has-addons .button.is-active:hover,
.buttons.has-addons .button.is-selected:hover {
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
z-index: 4;
}
.buttons.has-addons .button.is-expanded {
flex-grow: 1;
flex-shrink: 1;
}
.buttons.is-centered {
justify-content: center;
}
.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
margin-left: 0.25rem;
margin-right: 0.25rem;
}
.buttons.is-right {
justify-content: flex-end;
}
.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
margin-left: 0.25rem;
margin-right: 0.25rem;
}
.tags.has-addons .tag {
margin-right: 0;
}
.tags.has-addons .tag:not(:first-child) {
margin-left: 0;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.tags.has-addons .tag:not(:last-child) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.field.has-addons {
display: flex;
justify-content: flex-start;
}
.field.has-addons .control:not(:last-child) {
margin-right: -1px;
}
.field.has-addons .control:not(:first-child):not(:last-child) .button,
.field.has-addons .control:not(:first-child):not(:last-child) .input,
.field.has-addons .control:not(:first-child):not(:last-child) .select select {
border-radius: 0;
}
.field.has-addons .control:first-child:not(:only-child) .button,
.field.has-addons .control:first-child:not(:only-child) .input,
.field.has-addons .control:first-child:not(:only-child) .select select {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.field.has-addons .control:last-child:not(:only-child) .button,
.field.has-addons .control:last-child:not(:only-child) .input,
.field.has-addons .control:last-child:not(:only-child) .select select {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.field.has-addons .control .button:not([disabled]):hover,
.field.has-addons .control .button:not([disabled]).is-hovered,
.field.has-addons .control .input:not([disabled]):hover,
.field.has-addons .control .input:not([disabled]).is-hovered,
.field.has-addons .control .select select:not([disabled]):hover,
.field.has-addons .control .select select:not([disabled]).is-hovered {
z-index: 2;
}
.field.has-addons .control .button:not([disabled]):focus,
.field.has-addons .control .button:not([disabled]).is-focused,
.field.has-addons .control .button:not([disabled]):active,
.field.has-addons .control .button:not([disabled]).is-active,
.field.has-addons .control .input:not([disabled]):focus,
.field.has-addons .control .input:not([disabled]).is-focused,
.field.has-addons .control .input:not([disabled]):active,
.field.has-addons .control .input:not([disabled]).is-active,
.field.has-addons .control .select select:not([disabled]):focus,
.field.has-addons .control .select select:not([disabled]).is-focused,
.field.has-addons .control .select select:not([disabled]):active,
.field.has-addons .control .select select:not([disabled]).is-active {
z-index: 3;
}
.field.has-addons .control .button:not([disabled]):focus:hover,
.field.has-addons .control .button:not([disabled]).is-focused:hover,
.field.has-addons .control .button:not([disabled]):active:hover,
.field.has-addons .control .button:not([disabled]).is-active:hover,
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
.field.has-addons .control .input:not([disabled]):focus:hover,
.field.has-addons .control .input:not([disabled]).is-focused:hover,
.field.has-addons .control .input:not([disabled]):active:hover,
.field.has-addons .control .input:not([disabled]).is-active:hover,
.field.has-addons .control .select select:not([disabled]):focus:hover,
.field.has-addons .control .select select:not([disabled]).is-focused:hover,
.field.has-addons .control .select select:not([disabled]):active:hover,
.field.has-addons .control .select select:not([disabled]).is-active:hover {
z-index: 4;
}
.field.has-addons .control.is-expanded {
flex-grow: 1;
flex-shrink: 1;
}
.field.has-addons.has-addons-centered {
justify-content: center;
}
.field.has-addons.has-addons-right {
justify-content: flex-end;
}
.field.has-addons.has-addons-fullwidth .control {
flex-grow: 1;
flex-shrink: 0;
}
`;
}
export function getNotificationCSS() {
// language=css
return css`
.notification {
background-color: var(--dbp-background);
color: var(--dbp-content);
padding: 1.25rem 2.5rem 1.25rem 1.5rem;
position: relative;
border-radius: var(--dbp-border-radius);
}
.notification a:not(.button):not(.dropdown-item) {
color: currentColor;
text-decoration: underline;
}
.notification strong {
color: currentColor;
}
.notification code,
.notification pre {
color: var(--dbp-on-muted-surface);
background: var(--dbp-muted-surface);
border-color: var(--dbp-muted-surface-border-color);
}
.notification pre code {
background: transparent;
}
.notification dbp-icon {
font-size: 1.4em;
margin-right: 0.4em;
}
.notification > .delete {
position: absolute;
right: 0.5rem;
top: 0.5rem;
}
.notification .title,
.notification .subtitle,
.notification .content {
color: currentColor;
}
.notification.is-primary {
background-color: var(--dbp-primary-surface);
color: var(--dbp-on-primary-surface);
border-color: var(--dbp-primary-surface-border-color);
background-color: var(--dbp-info-surface);
color: var(--dbp-on-info-surface);
border-color: var(--dbp-info-surface-border-color);
background-color: var(--dbp-success-surface);
background-color: var(--dbp-warning-surface);
color: var(--dbp-on-warning-surface);
border-color: var(--dbp-warning-surface-border-color);
background-color: var(--dbp-danger-surface);
color: var(--dbp-on-danger-surface);
border-color: var(--dbp-danger-surface-border-color);
}
`;
}
export function getButtonCSS() {
// language=css
return css`
button.button,
.button,
button.dt-button {
border-radius: var(--dbp-border-radius);
cursor: pointer;
justify-content: center;
padding-bottom: calc(0.375em - 1px);
padding-left: 0.75em;
padding-right: 0.75em;
padding-top: calc(0.375em - 1px);
text-align: center;
white-space: nowrap;
font-size: inherit;
transition: all 0.15s ease 0s, color 0.15s ease 0s;
background: var(--dbp-secondary-surface);
color: var(--dbp-on-secondary-surface);
border-color: var(--dbp-secondary-surface-border-color);
button.button:hover:enabled,
.button:hover:enabled,
button.dt-button:hover:enabled,
button.dt-button:hover:not(.disabled) {
color: var(--dbp-hover-color, var(--dbp-on-secondary-surface));
background-color: var(--dbp-hover-background-color, var(--dbp-secondary-surface));
border-color: var(--dbp-hover-background-color, var(--dbp-secondary-surface-border-color));
border-radius: calc(var(--dbp-border-radius) / 2);
button.button.is-primary,
.button.is-primary {
background-color: var(--dbp-primary-surface);
border-color: var(--dbp-primary-surface-border-color);
color: var(--dbp-on-primary-surface);
button.button.is-primary:hover:enabled,
.button.is-primary:hover:enabled {
background-color: var(--dbp-hover-background-color, var(--dbp-primary-surface));
color: var(--dbp-hover-color, var(--dbp-on-primary-surface));
border-color: var(--dbp-hover-background-color, var(--dbp-primary-surface-border-color));
background-color: var(--dbp-info-surface);
color: var(--dbp-on-info-surface);
border-color: var(--dbp-info-surface-border-color);
button.button.is-info:hover:enabled,
.button.is-info:hover:enabled {
background-color: var(--dbp-hover-background-color, var(--dbp-info-surface));
color: var(--dbp-hover-color, var(--dbp-on-info-surface));
border-color: var(--dbp-hover-background-color, var(--dbp-info-surface-border-color));
button.button.is-success,
.button.is-success {
background-color: var(--dbp-success-surface);
border-color: var(--dbp-success-surface-border-color);
color: var(--dbp-on-success-surface);
button.button.is-success:hover:enabled,
.button.is-success:hover:enabled {
background-color: var(--dbp-hover-background-color, var(--dbp-success-surface));
color: var(--dbp-hover-color, var(--dbp-on-success-surface));
border-color: var(--dbp-hover-background-color,var(--dbp-success-surface-border-color));
button.button.is-warning,
.button.is-warning {
background-color: var(--dbp-warning-surface);
border-color: var(--dbp-warning-surface-border-color);
color: var(--dbp-on-warning-surface);
button.button.is-warning:hover:enabled,
.button.is-warning:hover:enabled {
background-color: var(--dbp-hover-background-color, var(--dbp-warning-surface));
color: var(--dbp-hover-color, var(--dbp-on-warning-surface));
border-color: var(--dbp-hover-background-color, var(--dbp-warning-surface-border-color));
.button.button.is-danger,
.button.is-danger {
background-color: var(--dbp-danger-surface);
border-color: var(--dbp-danger-surface-border-color);
color: var(--dbp-on-danger-surface);
.button.button.is-danger:hover:enabled,
.button.is-danger:hover:enabled {
background-color: var(--dbp-hover-background-color, var(--dbp-danger-surface));
color: var(--dbp-hover-color, var(--dbp-on-danger-surface));
border-color: var(--dbp-hover-background-color, var(--dbp-danger-surface-border-color));
button.button[disabled],
.button[disabled],
fieldset[disabled] .button {
opacity: 0.4;
button:focus-visible {
outline: none !important;
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: 0px 0px 3px 1px var(--dbp-primary);
export function getRadioAndCheckboxCss() {
// language=css
/*
Radiobutton:
<label class="button-container">
Labeltext
<input type="radio" name="myradiobutton">
<span class="radiobutton"></span>
</label>
Checkbox:
<label class="button-container">
Labeltext
<input type="checkbox" name="mycheckbox">
<span class="checkmark"></span>
</label>
*/
.button-container {
display: block;
position: relative;
padding-left: 35px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.button-container input[type='radio'],
.button-container input[type='checkbox'] {
position: absolute;
opacity: 0;
cursor: pointer;
height: 0;
width: 0;
left: 0px;
}
.checkmark {
position: absolute;
top: 0;
left: 0;
height: 21px;
width: 21px;
background-color: var(--dbp-background);
.radiobutton {
position: absolute;
top: 0;
left: 0;
background-color: var(--dbp-background);
border: solid;
border-radius: 100%;
.button-container input[type='radio']:checked ~ .radiobutton:after {
.button-container input[type='radio']:disabled ~ .radiobutton {
border-color: var(--dbp-muted);
background-color: var(--dbp-muted);
.button-container input[type='radio']:checked:disabled ~ .radiobutton:after {
border-color: var(--dbp-muted);
background-color: var(--dbp-muted);
position: absolute;
display: none;
}
.button-container input[type='radio']:checked ~ .radiobutton:after {
.button-container .radiobutton:after {
left: 0px;
top: 0px;
width: 100%;
height: 100%;
border: 2px solid var(--dbp-background);
.button-container input[type='checkbox']:checked ~ .checkmark:after {
border-bottom: 1px solid var(--dbp-content);
border-right: 1px solid var(--dbp-content);
.button-container input[type='checkbox']:focus-visible ~ .checkmark {
outline: none !important;
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: 0px 0px 3px 1px var(--dbp-primary);
.button-container input[type='checkbox']:disabled ~ .checkmark {
border-color: var(--dbp-muted);
background-color: var(--dbp-muted);
.button-container input[type='checkbox']:checked:disabled ~ .checkmark:after {
}
.checkmark:after {
position: absolute;
display: none;
}
.button-container input[type='checkbox']:checked ~ .checkmark:after {
.button-container .checkmark:after {
width: 5px;
height: 11px;
border: 1px solid var(--dbp-content);
border-width: 0 2px 2px 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
@media only screen and (orientation: portrait) and (max-width: 768px) {
.checkmark {
width: 30px;
height: 30px;
top: 5px;
}
.button-container{
line-height: 40px;
}
.button-container {
padding-left: 40px;
}
.button-container .checkmark::after {
left: 10px;
width: 10px;
height: 19px;
}
.button-container input[type="checkbox"]:checked ~ .checkmark::after{
top: 1px;
left: 6px;
width: 5px;
height: 11px;
}
.button-container{
line-height: 1em;
}
export function getTagCSS() {
// language=css
return css`
.tags {
align-items: center;
display: flex;
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
justify-content: flex-start;
}
.tags .tag {
margin-bottom: 0.5rem;
}
.tags .tag:not(:last-child) {
margin-right: 0.5rem;
}
.tags:last-child {
margin-bottom: -0.5rem;
}
.tags:not(:last-child) {
margin-bottom: 1rem;
}
.tags.are-medium .tag:not(.is-normal):not(.is-large) {
font-size: 1rem;
}
.tags.are-large .tag:not(.is-normal):not(.is-medium) {
font-size: 1.25rem;
}
.tags.is-centered {
justify-content: center;
}
.tags.is-centered .tag {
margin-right: 0.25rem;
margin-left: 0.25rem;
}
.tags.is-right {
justify-content: flex-end;
}
.tags.is-right .tag:not(:first-child) {
margin-left: 0.5rem;
}
.tags.is-right .tag:not(:last-child) {
margin-right: 0;
}
.tags.has-addons .tag {
margin-right: 0;
}
.tags.has-addons .tag:not(:first-child) {
margin-left: 0;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.tags.has-addons .tag:not(:last-child) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.tag:not(body) {
align-items: center;
border-radius: var(--dbp-border-radius);
display: inline-flex;
font-size: 0.75rem;
height: 2em;
justify-content: center;
line-height: 1.5;
padding-left: 0.75em;
padding-right: 0.75em;
white-space: nowrap;
}
.tag:not(body) .delete {
margin-left: 0.25rem;
margin-right: -0.375rem;
}
.tag:not(body).is-dark {
background-color: var(--dbp-content-surface);
color: var(--dbp-on-content-surface);