zulip/web/styles/widgets.css
Shubham Padia 75b6b1d54f polls: Do not use pixel height for poll title.
Poll title was set to 18px which was leading to the title looking
smaller than the options in 20px font size. Removing that explicit
font-size declaration will make the h4 font-size fall back to 1.1em and
thus that title will scale properly to font-size changes. At 16px, the
font-size for the title was 18px initially, now it is 17.6px which
should not be that big of a change.
2025-01-21 16:22:53 -08:00

305 lines
7.1 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;
height: 12px;
width: 12px;
font-weight: 300;
line-height: 0.8;
font-size: 1.3rem;
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%);
transition:
border-color linear 0.2s,
box-shadow linear 0.2s;
border-radius: 4px;
color: hsl(0deg 0% 33%);
&:focus {
border-color: hsl(206deg 80% 62% / 80%);
outline: 0;
box-shadow: none;
background-color: var(--color-background-widget-input);
}
}
}
.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: 25px;
height: 25px;
font-size: 13px;
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;
transition: none 0.2s ease;
transition-property: background-color, border-color, color;
&:hover,
&:focus {
outline: 0;
border-color: hsl(156deg 30% 50%);
}
&:active {
border-color: hsl(156deg 30% 40%);
color: hsl(156deg 44% 43%);
background-color: hsl(154deg 33% 96%);
}
}
}
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: 12px;
}
.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%);
}