mirror of
https://github.com/logseq/logseq.git
synced 2026-05-01 09:26:28 +00:00
* enhance(plugin): call apis with the sdk ns * enhance(plugin): types * enhance(api): get value from the computed style * enhance(api): types * enhance(plugin): types * enhance(plugin): types * fix: lint * fix(apis): incorrect shortcut command registion for block editing mode #10392 * fix(api): types * enhance(apis): support register shortcuts with multi binding vals * fix(plugins): normalize command key to make the internal keyword legal * chore(plugin): build libs core * chore(plugin): bump version * enhance(apis): normalize apis cljs data * chore(plugin): update libs user sdk * chore(plugin): CHANGELOG.md * fix: typo * feat(ui): add package * Update .gitignore * feat(ui): set up shui infrastructure * feat(ui): add storybook macro * enhance(ui): storybook themes * feat(ui): adapt ui button to classic * enhance(ui): shui story * feat(ui): shui toaster * enhance(ui): shui toaster * feat(ui): imperative API for shui toaster * enhance(shui): update API for shui toaster * enhance(shui): update hooks for shui toaster * enhance(shui): remove debug * feat(ui): story for the shui toaster * feat(ui): story * feat(ui): story docs * feat(ui): more variants for the shui toaster * feat(ui): story * fix(ux): support querying plugins with right space chars * feat(ui): add shui `Alert` component * enhance(ui): shui demo * feat(ui): add logseq UI readme * enhance(ui): default shui theme * feat(ui): add shui `Badge` component & demo * fix(ui): outline theme for shui button * feat(ui): custom icon for the toaster item * feat(ui): add shui dropdown & demo * feat(ui): WIP shui form related components * feat(ui): WIP shui form-related components * feat(ui): WIP shui form * feat(ui): WIP shui form state for validation * fix(ui): missing rounded for ui button * feat(ui): add yup for shui form as default validation resolver * enhance(ui): simplify validation schema input for the shui form * fix(ui): accent ring color for input * feat(ui): add shui switch * feat(ui): add shui checkbox & switch * feat(ui): add shui radio group * fix(ui): missing file * feat(ui): add Textarea component * feat(ui): add shui card & skeleton * feat(ui): add shui context menu component & demo * fix(ui): accent color for the context menu item * feat(ui): add shui select component & demo * enhance(ui): ui css priority * feat(ui): add shui calendar & ui details * feat(ui): add shui popover * feat(ui): add date picker & demo * feat(ui): add shui dialog * feat(ui): WIP add shui dialog * feat(ui): WIP shui dialog as modal * feat(ui): WIP imperative APIs for the shui modal * feat(ui): imperative APIs for the shui modal/alert * feat(ui): support imperative API alert!/confirm! return promise * feat(ui): simplify shui components resources * feat(ui): response layout for the demo ui page * feat(ui): simplify colors * feat(ui): simplify colors * feat(ui): simplify colors * refactor(ui): WIP Adapt to the new button component * refactor(ui): polish new button & colors * fix(ui): the new theme color for the plugin settings nav item link * fix(ui): blockquote colors * enhance(ui): more custom colors for shui button * feat(ui): WIP make logseq green as a theme color * enhance(ui): polish logseq classical theme color * fix(ui): theme details of all pages * enhance(ui): polish logseq theme color for dark mode * fix(ui): missing table style * refactor(ui): simplify the all shui buttons & shortcuts for the cmdk component * fix(ui): missing file * refactor(ui): clear up stuff * fix(ui): theme color related issues * enhance(ui): polish button style * enhance(ui): polish the keymap setting pane * fix(ui): hint button from the cmdk pane footer * fix(ui): logseq colors for the storybook * enhance(ui): stories for the shui components * fix(ui): active color for the old toggle component * enhance(ui): keep the constant size of the settings pane * fix(ui): polish search input for the plugins pane * enhance(ui): polish number list bullet colors * feat(ui): add shui tooltip component * chore: build ui * chore(ui): clean up resources * fix: lint * fix: lint * fix: lint * fix(ui): alignment of the keymap title from the settings pane * fix: tests * fix(ui): close button for the classic notification tip * fix(ui): polish toaster viewport * enhance(ui): polish the ghost button colors * enhance(ui): demos for tips * fix(ui): accent colors for the rc-datepicker * fix(ui): accent color for the menu item * refactor(ui): remove unless code for the accent colors * enhance(ui): polish pdf viewer background color for the accent color mode * fix: lint * fix: lint * fix: lint * enhance(ui): support button with the custom href link * enhance(ui): polish aside setting items * enhance(ui): polish accent color for buttons * enhance(ui): polish all pages --------- Co-authored-by: Gabriel Horner <97210743+logseq-cldwalker@users.noreply.github.com>
377 lines
7.3 KiB
CSS
377 lines
7.3 KiB
CSS
#ui__ac {
|
|
&-inner {
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
position: relative;
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
.menu-link {
|
|
word-break: break-all;
|
|
|
|
.has-help {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
small {
|
|
visibility: visible;
|
|
cursor: help;
|
|
|
|
svg {
|
|
opacity: .3;
|
|
}
|
|
|
|
&:hover svg {
|
|
opacity: .9;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:hover, &.chosen {
|
|
.has-help small {
|
|
visibility: visible;
|
|
}
|
|
}
|
|
|
|
&:not(.chosen):hover {
|
|
background-color: unset !important;
|
|
color: or(--ls-autocomplete-color-hover, --lx-gray-12, --ls-primary-text-color);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.menu-link {
|
|
&.no-padding {
|
|
padding: 0 !important;
|
|
}
|
|
}
|
|
|
|
.ui__ac-group-name {
|
|
@apply p-2 text-xs;
|
|
color: or(--ls-dropdown-title-color, --lx-gray-11-alpha, --ls-block-ref-link-text-color);
|
|
background-color: or(--ls-dropdown-title-background, --lx-gray-03);
|
|
}
|
|
|
|
.search-all #ui__ac-inner {
|
|
max-height: none;
|
|
}
|
|
|
|
.ui__notifications {
|
|
position: fixed;
|
|
z-index: var(--ls-z-index-level-4);
|
|
width: 100%;
|
|
top: 3.2em;
|
|
pointer-events: none;
|
|
|
|
&-content {
|
|
@apply inset-0 flex items-end justify-center px-4 py-3
|
|
pointer-events-none sm:px-6 sm:py-3 sm:items-start
|
|
sm:justify-end;
|
|
}
|
|
|
|
.notification-area {
|
|
background-color: or(--logseq-of-notification-background, --lx-gray-04, --ls-tertiary-background-color, #fff);
|
|
color: or(--ls-notification-text-color, --lx-gray-11, --ls-primary-text-color);
|
|
}
|
|
}
|
|
|
|
.ui__toggle {
|
|
.wrapper {
|
|
@apply relative flex-shrink-0
|
|
h-6 w-11 border-2 border-transparent flex
|
|
rounded-full cursor-pointer focus:outline-none;
|
|
}
|
|
|
|
.switcher {
|
|
@apply inline-block h-5 w-5 rounded-full bg-white shadow;
|
|
}
|
|
|
|
&.is-small {
|
|
.wrapper {
|
|
@apply h-4 w-8;
|
|
}
|
|
|
|
.switcher {
|
|
@apply h-3 w-3;
|
|
}
|
|
}
|
|
}
|
|
|
|
.ui__modal {
|
|
@apply fixed px-4 pb-4 inset-0 flex items-baseline justify-center
|
|
top-12 sm:top-[calc(3vh+50px)];
|
|
|
|
&-overlay {
|
|
@apply fixed inset-0 transition-opacity;
|
|
}
|
|
|
|
&-overlay div {
|
|
--from: or(--ls-modal-overlay-gradient-start, --lx-gray-03, --ls-primary-background-color);
|
|
--to: or(--ls-modal-overlay-gradient-end, --lx-gray-06, --ls-quaternary-background-color);
|
|
background-image: linear-gradient(to bottom, var(--from), var(--to));
|
|
}
|
|
|
|
&-panel {
|
|
@apply relative rounded-md shadow-xl border-none;
|
|
|
|
overflow: hidden;
|
|
background: or(--ls-modal-panel-color, --lx-gray-04, --ls-secondary-background-color);
|
|
|
|
.panel-content {
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
width: calc(96vw - 2rem);
|
|
max-height: 89vh;
|
|
padding: 2rem 1.5rem;
|
|
|
|
@screen sm {
|
|
overflow-y: overlay;
|
|
max-height: 85vh;
|
|
padding: 2rem;
|
|
width: auto;
|
|
min-width: 600px;
|
|
|
|
.ls-card,
|
|
.ls-search {
|
|
width: 740px;
|
|
}
|
|
|
|
.ls-card {
|
|
min-height: 60vh;
|
|
}
|
|
|
|
.ls-search {
|
|
width: var(--ls-main-content-max-width);
|
|
}
|
|
}
|
|
|
|
@screen md {
|
|
min-width: 720px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&-close {
|
|
@apply text-gray-400 hover:text-gray-500
|
|
focus:outline-none focus:text-gray-500
|
|
transition ease-in-out duration-150 opacity-60
|
|
hover:opacity-100;
|
|
|
|
&-wrap {
|
|
@apply z-10 absolute top-0 right-0 pt-2 pr-2;
|
|
}
|
|
}
|
|
|
|
&[label="ls-modal-align-center"] {
|
|
top: 0;
|
|
|
|
.ui__modal-panel {
|
|
top: 50vh;
|
|
transform: translateY(-52%);
|
|
}
|
|
}
|
|
|
|
&[label="diff__cp"] {
|
|
.panel-content {
|
|
padding: 2rem 1rem;
|
|
|
|
@screen sm {
|
|
padding: 2rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
&[label="flashcards__cp"] {
|
|
.panel-content {
|
|
padding: 2rem 0;
|
|
|
|
@screen sm {
|
|
padding: 2rem 2rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
&[label="instruction__cp"] {
|
|
|
|
.ui__modal-panel {
|
|
height: 90%;
|
|
}
|
|
|
|
.panel-content {
|
|
height: 100%;
|
|
}
|
|
}
|
|
}
|
|
|
|
.instruction {
|
|
height: 40%;
|
|
|
|
@screen sm {
|
|
height: 70%;
|
|
}
|
|
}
|
|
|
|
html.is-native-android,
|
|
html.is-native-iphone,
|
|
html.is-native-iphone-without-notch {
|
|
.references {
|
|
.blocks-container {
|
|
transform: translateX(-8px);
|
|
width: 104%;
|
|
}
|
|
}
|
|
|
|
.ls-card {
|
|
min-height: 65vh;
|
|
}
|
|
|
|
.ui__modal {
|
|
&[label="flashcards__cp"] {
|
|
.panel-content {
|
|
padding: 2rem 1rem 1rem;
|
|
width: 90vw;
|
|
|
|
.cards-review {
|
|
padding-left: 0px;
|
|
padding-right: 0px;
|
|
}
|
|
|
|
.blocks-container {
|
|
transform: translateX(-7px);
|
|
width: 103%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
html.is-mobile {
|
|
.ui__modal {
|
|
@apply bottom-0 inset-x-0 top-20;
|
|
|
|
&[label="ls-modal-search"] {
|
|
.panel-content {
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.ls-search {
|
|
padding-bottom: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.ui__confirm-modal {
|
|
.sublabel {
|
|
display: flex;
|
|
padding: 2px 0;
|
|
align-items: center;
|
|
font-size: 14px;
|
|
|
|
input[type='checkbox'] {
|
|
margin-right: 8px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.dropdown-wrapper {
|
|
background-color: or(--ls-dropdown-background, --lx-gray-03, --ls-primary-background-color, #fff);
|
|
border: 1px solid or(--ls-dropdown-border-color, --lx-gray-05, --ls-tertiary-background-color);
|
|
min-width: 12rem;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.dropdown-caret {
|
|
display: inline-block;
|
|
width: 0;
|
|
height: 0;
|
|
vertical-align: middle;
|
|
content: '';
|
|
border-top-style: solid;
|
|
border-top-width: 4px;
|
|
border-right: 4px solid transparent;
|
|
border-bottom: 0 solid transparent;
|
|
border-left: 4px solid transparent;
|
|
}
|
|
|
|
.form-select {
|
|
@apply block w-full pl-3 pr-10 py-2 text-base leading-6 rounded
|
|
border-gray-300 focus:outline-none sm:text-sm sm:leading-5;
|
|
|
|
background-color: or(--ls-form-select-background-color, --lx-gray-03, --ls-primary-background-color, transparent);
|
|
background-repeat: no-repeat;
|
|
border-width: 1px;
|
|
border-color: or(--ls-form-select-border-color, --lx-gray-07, --ls-border-color);
|
|
|
|
&.is-small {
|
|
@apply pl-2 py-1.5 sm:leading-4 sm:text-xs;
|
|
}
|
|
}
|
|
|
|
.form-input {
|
|
@apply block w-full pl-2
|
|
sm:text-sm sm:leading-5 rounded;
|
|
|
|
border-width: 1px;
|
|
border-color: or(--ls-form-input-border-color, --lx-gray-07, --ls-border-color);
|
|
|
|
&:focus {
|
|
box-shadow: 0 0 0 2px rgba(164, 202, 254, 0.45);
|
|
}
|
|
|
|
&.is-small {
|
|
@apply py-1.5 sm:leading-4 sm:text-xs;
|
|
}
|
|
}
|
|
|
|
.rotating-arrow.not-collapsed svg {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.rotating-arrow svg {
|
|
transition: all 100ms ease-in 0ms;
|
|
}
|
|
|
|
.bg-quaternary {
|
|
background-color: or(--ls-bg-quaternary, --lx-gray-06, --ls-quaternary-background-color);
|
|
}
|
|
|
|
.ui__icon {
|
|
display: inline-block;
|
|
}
|
|
|
|
.type-icon {
|
|
@apply text-base text-center flex items-center justify-center rounded border mr-2 relative;
|
|
|
|
width: 24px;
|
|
height: 24px;
|
|
flex-shrink: 0;
|
|
border-color: or(--ls-type-icon-border-color, --lx-gray-03, --ls-primary-background-color);
|
|
overflow: hidden;
|
|
color: or(--ls-type-icon-text-color, --lx-gray-12, --ls-primary-text-color);
|
|
|
|
.ti,
|
|
.tie {
|
|
z-index: 1;
|
|
}
|
|
|
|
&:before {
|
|
@apply block absolute inset-0 ;
|
|
background: or(--ls-type-icon-before-color, --lx-gray-03, --ls-primary-background-color);
|
|
content: " ";
|
|
}
|
|
}
|
|
|
|
.ui__radio-list {
|
|
@apply grid grid-flow-col gap-2;
|
|
}
|
|
|
|
.ui__toggle-background-on {
|
|
@apply bg-primary;
|
|
}
|
|
|
|
.ui__toggle-background-off {
|
|
background: or(--ls-toggle-off-background, --lx-gray-08, rgb(212, 212, 212));
|
|
}
|