mirror of
https://github.com/zulip/zulip.git
synced 2026-06-30 21:11:04 +08:00
This removes the previous slightly-lighter text shade in light mode, and gets away from the trickiness of `color: inherit` in dark mode. While we could probably go with inheritance everywhere, simply by removing the color: value on these element, setting an explicit color variable on the inputs here builds better confidence as to what the color value will ultimately be.
305 lines
7.3 KiB
CSS
305 lines
7.3 KiB
CSS
.widget-content {
|
|
margin-bottom: var(--markdown-interelement-space-px);
|
|
}
|
|
|
|
.widget-choices {
|
|
& ul {
|
|
padding: 3px;
|
|
}
|
|
|
|
& li {
|
|
padding: 2px;
|
|
list-style: none;
|
|
}
|
|
|
|
& button {
|
|
font-weight: 700;
|
|
color: hsl(240deg 100% 50%);
|
|
}
|
|
|
|
.widget-choices-heading {
|
|
font-weight: 600;
|
|
}
|
|
}
|
|
|
|
.todo-widget {
|
|
.todo-task-list-title-bar {
|
|
flex: 1 1 auto;
|
|
display: flex;
|
|
/* Ensure controls remain visible on narrower screens. */
|
|
flex-flow: row wrap;
|
|
gap: 5px;
|
|
margin-bottom: var(--markdown-interelement-space-px);
|
|
}
|
|
|
|
.add-task-bar {
|
|
display: flex;
|
|
/* Ensure controls remain visible on narrower screens. */
|
|
flex-flow: row wrap;
|
|
gap: 5px;
|
|
}
|
|
|
|
/* For the box-shadow to be visible on the left */
|
|
.add-task,
|
|
.add-desc {
|
|
font-weight: 400;
|
|
}
|
|
|
|
& label.checkbox {
|
|
display: flex; /* Arrange that a multi-line description line wraps properly. */
|
|
/* Keep checkboxes vertically aligned, including with multi-line tasks. */
|
|
align-items: baseline;
|
|
/* Reset default label.checkbox styles. */
|
|
gap: 5px;
|
|
position: static;
|
|
min-height: 0;
|
|
|
|
& input[type="checkbox"] {
|
|
~ .custom-checkbox {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
position: static;
|
|
|
|
padding: 2px;
|
|
margin: 0;
|
|
|
|
font-size: 1.3em; /* 18.2px / 14px em */
|
|
height: 0.6593em; /* 12px at 18.2px / em */
|
|
width: 0.6593em; /* 12px at 18.2px / em */
|
|
|
|
font-weight: 300;
|
|
line-height: 0.8;
|
|
text-align: center;
|
|
border: 2px solid hsl(156deg 28% 70%);
|
|
|
|
border-radius: 4px;
|
|
filter: brightness(1);
|
|
|
|
cursor: pointer;
|
|
}
|
|
|
|
&:checked ~ .custom-checkbox {
|
|
background-image: url("../images/checkbox-white.svg");
|
|
background-size: 75%;
|
|
background-position: 50% 50%;
|
|
background-repeat: no-repeat;
|
|
background-color: hsl(156deg 41% 40%);
|
|
border: 2px solid hsl(156deg 41% 40%);
|
|
}
|
|
|
|
&:disabled ~ .custom-checkbox {
|
|
opacity: 0.5;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
&:hover ~ .custom-checkbox {
|
|
border-color: hsl(156deg 30% 50%);
|
|
}
|
|
|
|
&:focus ~ .custom-checkbox {
|
|
outline-color: hsl(0deg 0% 100% / 0%);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.todo-widget,
|
|
.poll-widget {
|
|
.poll-question-header,
|
|
.todo-task-list-title-header {
|
|
font-size: 1.1em;
|
|
font-weight: 600;
|
|
}
|
|
|
|
& li {
|
|
display: flex;
|
|
gap: 5px;
|
|
align-items: baseline;
|
|
list-style: none;
|
|
margin: 0 0 5px;
|
|
}
|
|
|
|
& ul {
|
|
margin: 0 0 5px;
|
|
padding: 0;
|
|
}
|
|
|
|
& input[type="text"] {
|
|
/* Reset from zulip.css */
|
|
height: unset;
|
|
border: 1px solid hsl(0deg 0% 80%);
|
|
box-shadow: inset 0 1px 1px hsl(0deg 0% 0% / 7.5%);
|
|
border-radius: 4px;
|
|
color: var(--color-text-default);
|
|
|
|
&:focus {
|
|
border-color: hsl(206deg 80% 62% / 80%);
|
|
outline: 0;
|
|
box-shadow: none;
|
|
background-color: var(--color-background-widget-input);
|
|
transition:
|
|
border-color linear 0.2s,
|
|
box-shadow linear 0.2s;
|
|
}
|
|
}
|
|
}
|
|
|
|
.poll-widget {
|
|
.poll-option-bar {
|
|
display: flex;
|
|
/* Ensure controls remain visible on narrower screens. */
|
|
flex-flow: row wrap;
|
|
gap: 5px;
|
|
}
|
|
|
|
.poll-option {
|
|
font-weight: 400;
|
|
}
|
|
|
|
& span.poll-option {
|
|
font-weight: 600;
|
|
/* Start with max-content, but allow options
|
|
to shrink, so that voting names wrap comfortably. */
|
|
flex: 0 1 max-content;
|
|
}
|
|
|
|
.poll-vote {
|
|
color: hsl(156deg 41% 40%);
|
|
border-color: hsl(156deg 28% 70%);
|
|
border-style: solid;
|
|
font-weight: 600;
|
|
border-radius: 3px;
|
|
min-width: 1.7857em; /* 25px at 14px / em */
|
|
height: 1.7857em; /* 25px at 14px / em */
|
|
font-size: 0.9285em; /* 13px at 14px / em */
|
|
background-color: var(--color-background-widget-button);
|
|
|
|
&:hover {
|
|
border-color: hsl(156deg 30% 50%);
|
|
}
|
|
|
|
&:focus {
|
|
outline: 0;
|
|
background-color: hsl(156deg 41% 90%);
|
|
}
|
|
}
|
|
|
|
.poll-names {
|
|
color: hsl(0deg 0% 45%);
|
|
/* Aim for 50% of the flexbox for voting names,
|
|
but also shrink modestly (.5) adjacent a long
|
|
option. */
|
|
flex: 1 0.5 50%;
|
|
}
|
|
}
|
|
|
|
button {
|
|
&.task {
|
|
height: 20px;
|
|
width: 20px;
|
|
background-color: transparent;
|
|
border-color: hsl(156deg 28% 70%);
|
|
margin-right: 4px;
|
|
border-radius: 3px;
|
|
|
|
&:hover {
|
|
border: 1px solid hsl(194deg 60% 40%);
|
|
}
|
|
}
|
|
|
|
&.add-task,
|
|
&.poll-option {
|
|
color: hsl(156deg 41% 40%);
|
|
border: 1px solid hsl(156deg 28% 70%);
|
|
width: max-content;
|
|
flex: 0 0 auto;
|
|
border-radius: 3px;
|
|
background-color: var(--color-background-widget-button);
|
|
padding: 4px;
|
|
padding-left: 14px;
|
|
padding-right: 14px;
|
|
|
|
&:hover,
|
|
&:focus {
|
|
outline: 0;
|
|
border-color: hsl(156deg 30% 50%);
|
|
transition: 0.2s ease;
|
|
transition-property: background-color, border-color, color;
|
|
}
|
|
|
|
&:active {
|
|
transition: 0.2s ease;
|
|
transition-property: background-color, border-color, color;
|
|
}
|
|
}
|
|
}
|
|
|
|
input {
|
|
&.add-task,
|
|
&.add-desc,
|
|
&.poll-option,
|
|
&.poll-question,
|
|
&.todo-task-list-title {
|
|
flex: 1 0 auto;
|
|
padding: 4px 6px;
|
|
}
|
|
}
|
|
|
|
.widget-error {
|
|
color: hsl(1deg 45% 50%);
|
|
font-size: 0.8571em; /* 12px at 14px/em */
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.poll-question-check,
|
|
.poll-question-remove,
|
|
.todo-task-list-title-check,
|
|
.todo-task-list-title-remove {
|
|
align-self: stretch;
|
|
/* TODO: Re-express the 30.5px value here
|
|
as part of information density work. */
|
|
flex: 0 0 30.5px;
|
|
min-height: 30.5px;
|
|
border-radius: 3px;
|
|
border: 1px solid var(--color-border-zulip-button);
|
|
background-color: var(--color-background-zulip-button);
|
|
|
|
&:hover {
|
|
border-color: var(--color-border-zulip-button-interactive);
|
|
background-color: var(--color-background-zulip-button-hover);
|
|
}
|
|
}
|
|
|
|
.poll-edit-question,
|
|
.todo-edit-task-list-title {
|
|
color: var(--color-message-action-visible);
|
|
|
|
&:hover,
|
|
&:focus-visible {
|
|
color: var(--color-message-action-interactive);
|
|
}
|
|
}
|
|
|
|
.poll-question-bar {
|
|
flex: 1 1 auto;
|
|
display: flex;
|
|
/* Ensure controls remain visible on narrower screens. */
|
|
flex-flow: row wrap;
|
|
gap: 5px;
|
|
/* Reserve space for the focus outline to prevent it from being cut off */
|
|
margin-right: 2px;
|
|
margin-bottom: var(--markdown-interelement-space-px);
|
|
}
|
|
|
|
.poll-widget-header-area,
|
|
.todo-widget-header-area {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 5px;
|
|
}
|
|
|
|
.current-user-vote {
|
|
background-color: hsl(156deg 10% 90% / 90%);
|
|
}
|