diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f9b15e4110..d6ea00d2db 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -232,7 +232,7 @@ We've added some `UnoCSS` utilities styles to help you with that: - Do not use `rtl-` classes, such as `rtl-left-0`. - For icons that should be rotated for RTL, add `class="rtl-flip"`. This can only be used for icons outside of elements with `dir="auto"`. - For absolute positioned elements, don't use `left/right`: for example `left-0`. Use `inset-inline-start/end` instead. `UnoCSS` shortcuts are `inset-is` for `inset-inline-start` and `inset-ie` for `inset-inline-end`. Example: `left-0` should be replaced with `inset-is-0`. -- If you need to change the border radius for an entire left or right side, use `border-inline-start/end`. `UnoCSS` shortcuts are `rounded-is` for left side, `rounded-ie` for right side. Example: `rounded-l-5` should be replaced with `rounded-ie-5`. +- If you need to change the border radius for an entire left or right side, use `border-inline-start/end`. `UnoCSS` shortcuts are `rounded-is` for left side, `rounded-ie` for right side. Example: `rounded-l-5` should be replaced with `rounded-is-5`. - If you need to change the border radius for one corner, use `border-start-end-radius` and similar rules. `UnoCSS` shortcuts are `rounded` + top/bottom as either `-bs` (top) or `-be` (bottom) + left/right as either `-is` (left) or `-ie` (right). Example: `rounded-tl-0` should be replaced with `rounded-bs-is-0`. ## Localization (i18n) diff --git a/app/assets/main.css b/app/assets/main.css index eaccb18ff3..efeea3805a 100644 --- a/app/assets/main.css +++ b/app/assets/main.css @@ -156,7 +156,7 @@ button { .skip-link { position: fixed; top: -100%; - left: 0; + inset-inline-start: 0; padding: 0.5rem 1rem; background: var(--fg); color: var(--bg); @@ -165,11 +165,6 @@ button { transition: top 0.2s ease; } -html[dir='rtl'] .skip-link { - left: unset; - right: 0; -} - .skip-link:hover { color: var(--bg); text-decoration: underline; @@ -298,7 +293,7 @@ html.light .shiki span { .readme-content ul, .readme-content ol { margin: 1rem 0; - padding-left: 1.5rem; + padding-inline-start: 1.5rem; } .readme-content ul { @@ -319,8 +314,8 @@ html.light .shiki span { } .readme-content blockquote { - border-left: 2px solid var(--border); - padding-left: 1rem; + border-inline-start: 2px solid var(--border); + padding-inline-start: 1rem; margin: 1.5rem 0; color: var(--fg-subtle); font-style: italic; @@ -328,8 +323,9 @@ html.light .shiki span { /* GitHub-style callouts/alerts */ .readme-content blockquote[data-callout] { - border-left-width: 3px; - padding: 1rem 1rem 1rem 1.25rem; + border-inline-start-width: 3px; + padding: 1rem; + padding-inline-start: 1.25rem; background: var(--bg-subtle); font-style: normal; color: var(--fg-subtle); @@ -344,7 +340,7 @@ html.light .shiki span { text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem; - padding-left: 1.5rem; + padding-inline-start: 1.5rem; } .readme-content blockquote[data-callout]::after { @@ -365,7 +361,7 @@ html.light .shiki span { /* Note - blue */ .readme-content blockquote[data-callout='note'] { - border-left-color: var(--syntax-str); + border-inline-start-color: var(--syntax-str); background: rgba(59, 130, 246, 0.05); } .readme-content blockquote[data-callout='note']::before { @@ -380,7 +376,7 @@ html.light .shiki span { /* Tip - green */ .readme-content blockquote[data-callout='tip'] { - border-left-color: #22c55e; + border-inline-start-color: #22c55e; background: rgba(34, 197, 94, 0.05); } .readme-content blockquote[data-callout='tip']::before { @@ -395,7 +391,7 @@ html.light .shiki span { /* Important - purple */ .readme-content blockquote[data-callout='important'] { - border-left-color: var(--syntax-fn); + border-inline-start-color: var(--syntax-fn); background: rgba(168, 85, 247, 0.05); } .readme-content blockquote[data-callout='important']::before { @@ -410,7 +406,7 @@ html.light .shiki span { /* Warning - yellow/orange */ .readme-content blockquote[data-callout='warning'] { - border-left-color: #eab308; + border-inline-start-color: #eab308; background: rgba(234, 179, 8, 0.05); } .readme-content blockquote[data-callout='warning']::before { @@ -425,7 +421,7 @@ html.light .shiki span { /* Caution - red */ .readme-content blockquote[data-callout='caution'] { - border-left-color: #ef4444; + border-inline-start-color: #ef4444; background: rgba(239, 68, 68, 0.05); } .readme-content blockquote[data-callout='caution']::before { @@ -452,7 +448,7 @@ html.light .shiki span { .readme-content td { border: 1px solid var(--border); padding: 0.75rem 1rem; - text-align: left; + text-align: start; } .readme-content th { diff --git a/app/components/AppTooltip.vue b/app/components/AppTooltip.vue index 575149d50a..d430cae683 100644 --- a/app/components/AppTooltip.vue +++ b/app/components/AppTooltip.vue @@ -10,10 +10,10 @@ const isVisible = shallowRef(false) const tooltipId = useId() const positionClasses: Record = { - top: 'bottom-full left-1/2 -translate-x-1/2 mb-1', - bottom: 'top-full left-0 mt-1', - left: 'right-full top-1/2 -translate-y-1/2 mr-2', - right: 'left-full top-1/2 -translate-y-1/2 ml-2', + top: 'bottom-full inset-is-1/2 -translate-x-1/2 mb-1', + bottom: 'top-full inset-is-0 mt-1', + left: 'inset-ie-full top-1/2 -translate-y-1/2 me-2', + right: 'inset-is-full top-1/2 -translate-y-1/2 ms-2', } const tooltipPosition = computed(() => positionClasses[props.position || 'bottom']) diff --git a/app/components/ColumnPicker.vue b/app/components/ColumnPicker.vue index 553873ebf8..879208b818 100644 --- a/app/components/ColumnPicker.vue +++ b/app/components/ColumnPicker.vue @@ -93,7 +93,7 @@ function handleReset() { v-if="isOpen" ref="menuRef" :id="menuId" - class="absolute right-0 mt-2 w-60 bg-bg-subtle border border-border rounded-lg shadow-lg z-20" + class="absolute inset-ie-0 mt-2 w-60 bg-bg-subtle border border-border rounded-lg shadow-lg z-20" role="group" :aria-label="$t('filters.columns.show')" > @@ -144,7 +144,7 @@ function handleReset() {