forked from MapComplete/MapComplete
UI: change tablist to reflect fixmycity-design, see #2107
This commit is contained in:
parent
c30d52c5f4
commit
0f2e8486cd
4 changed files with 93 additions and 37 deletions
|
@ -5444,6 +5444,46 @@ button.unstyled, .button-unstyled button {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****** Tablist elements *****/
|
||||||
|
|
||||||
|
.tablist {
|
||||||
|
margin: 0.25rem;
|
||||||
|
padding: 0.5rem;
|
||||||
|
border: 2px dashed var(--button-background-hover);
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab {
|
||||||
|
border: unset;
|
||||||
|
border-radius: 0;
|
||||||
|
transition: all;
|
||||||
|
color: var(--foreground-color);
|
||||||
|
border-bottom: 2px solid var(--foreground-color);
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0.25rem;
|
||||||
|
padding: 0.25rem;
|
||||||
|
padding-left: 0.75rem;
|
||||||
|
padding-right: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-selected {
|
||||||
|
opacity: 100%;
|
||||||
|
background: var(--interactive-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Actually used, don't remove*/
|
||||||
|
|
||||||
|
.tab-unselected {
|
||||||
|
background: #00000000 !important;
|
||||||
|
opacity: 60%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-unselected:hover {
|
||||||
|
background: var(--interactive-background);
|
||||||
|
}
|
||||||
|
|
||||||
/******* Other input elements ******/
|
/******* Other input elements ******/
|
||||||
|
|
||||||
.hover-alert:hover {
|
.hover-alert:hover {
|
||||||
|
|
|
@ -43,11 +43,11 @@
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div class="interactive sticky top-0 flex items-center justify-between">
|
<div class="tablist sticky top-0 flex items-center justify-center">
|
||||||
<TabList class="flex flex-wrap">
|
<TabList class="flex items-center justify-center">
|
||||||
{#if $$slots.title0}
|
{#if $$slots.title0}
|
||||||
<Tab
|
<Tab
|
||||||
class={({ selected }) => twJoin("tab", selected && "primary", !$condition0 && "hidden")}
|
class={({ selected }) => twJoin("tab", selected ? "tab-selected": "tab-unselected", !$condition0 && "hidden")}
|
||||||
>
|
>
|
||||||
<div bind:this={tabElements[0]} class="flex">
|
<div bind:this={tabElements[0]} class="flex">
|
||||||
<slot name="title0">Tab 0</slot>
|
<slot name="title0">Tab 0</slot>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{#if $$slots.title1}
|
{#if $$slots.title1}
|
||||||
<Tab
|
<Tab
|
||||||
class={({ selected }) => twJoin("tab", selected && "primary", !$condition1 && "hidden")}
|
class={({ selected }) => twJoin("tab", selected ? "tab-selected": "tab-unselected", !$condition1 && "hidden")}
|
||||||
>
|
>
|
||||||
<div bind:this={tabElements[1]} class="flex">
|
<div bind:this={tabElements[1]} class="flex">
|
||||||
<slot name="title1" />
|
<slot name="title1" />
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{#if $$slots.title2}
|
{#if $$slots.title2}
|
||||||
<Tab
|
<Tab
|
||||||
class={({ selected }) => twJoin("tab", selected && "primary", !$condition2 && "hidden")}
|
class={({ selected }) => twJoin("tab", selected ? "tab-selected": "tab-unselected", !$condition2 && "hidden")}
|
||||||
>
|
>
|
||||||
<div bind:this={tabElements[2]} class="flex">
|
<div bind:this={tabElements[2]} class="flex">
|
||||||
<slot name="title2" />
|
<slot name="title2" />
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{#if $$slots.title3}
|
{#if $$slots.title3}
|
||||||
<Tab
|
<Tab
|
||||||
class={({ selected }) => twJoin("tab", selected && "primary", !$condition3 && "hidden")}
|
class={({ selected }) => twJoin("tab", selected ? "tab-selected": "tab-unselected", !$condition3 && "hidden")}
|
||||||
>
|
>
|
||||||
<div bind:this={tabElements[3]} class="flex">
|
<div bind:this={tabElements[3]} class="flex">
|
||||||
<slot name="title3" />
|
<slot name="title3" />
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{#if $$slots.title4}
|
{#if $$slots.title4}
|
||||||
<Tab
|
<Tab
|
||||||
class={({ selected }) => twJoin("tab", selected && "primary", !$condition4 && "hidden")}
|
class={({ selected }) => twJoin("tab", selected ? "tab-selected": "tab-unselected", !$condition4 && "hidden")}
|
||||||
>
|
>
|
||||||
<div bind:this={tabElements[4]} class="flex">
|
<div bind:this={tabElements[4]} class="flex">
|
||||||
<slot name="title4" />
|
<slot name="title4" />
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{#if $$slots.title5}
|
{#if $$slots.title5}
|
||||||
<Tab
|
<Tab
|
||||||
class={({ selected }) => twJoin("tab", selected && "primary", !$condition5 && "hidden")}
|
class={({ selected }) => twJoin("tab", selected ? "tab-selected": "tab-unselected", !$condition5 && "hidden")}
|
||||||
>
|
>
|
||||||
<div bind:this={tabElements[5]} class="flex">
|
<div bind:this={tabElements[5]} class="flex">
|
||||||
<slot name="title5" />
|
<slot name="title5" />
|
||||||
|
@ -101,7 +101,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{#if $$slots.title6}
|
{#if $$slots.title6}
|
||||||
<Tab
|
<Tab
|
||||||
class={({ selected }) => twJoin("tab", selected && "primary", !$condition6 && "hidden")}
|
class={({ selected }) => twJoin("tab", selected ? "tab-selected": "tab-unselected", !$condition6 && "hidden")}
|
||||||
>
|
>
|
||||||
<div bind:this={tabElements[6]} class="flex">
|
<div bind:this={tabElements[6]} class="flex">
|
||||||
<slot name="title6" />
|
<slot name="title6" />
|
||||||
|
@ -167,19 +167,6 @@
|
||||||
height: calc(100% - 2rem);
|
height: calc(100% - 2rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.tab) {
|
|
||||||
margin: 0.25rem;
|
|
||||||
padding: 0.25rem;
|
|
||||||
padding-left: 0.75rem;
|
|
||||||
padding-right: 0.75rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
:global(.tab .flex) {
|
|
||||||
align-items: center;
|
|
||||||
gap: 0.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
:global(.tab span|div) {
|
:global(.tab span|div) {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 0.25rem;
|
gap: 0.25rem;
|
||||||
|
@ -190,8 +177,4 @@
|
||||||
fill: var(--interactive-contrast);
|
fill: var(--interactive-contrast);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.tab-unselected) {
|
|
||||||
background-color: var(--background-color) !important;
|
|
||||||
color: var(--foreground-color) !important;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -31,9 +31,9 @@
|
||||||
<WikipediaArticle wikipediaDetails={_wikipediaStores[0]} />
|
<WikipediaArticle wikipediaDetails={_wikipediaStores[0]} />
|
||||||
{:else}
|
{:else}
|
||||||
<TabGroup>
|
<TabGroup>
|
||||||
<TabList>
|
<TabList class="tablist">
|
||||||
{#each _wikipediaStores as store (store.tag)}
|
{#each _wikipediaStores as store (store.tag)}
|
||||||
<Tab class={({ selected }) => (selected ? "tab-selected" : "tab-unselected")}>
|
<Tab class={({ selected }) => ("tab "+ (selected ? "tab-selected" : "tab-unselected"))}>
|
||||||
<WikipediaTitle wikipediaDetails={store} />
|
<WikipediaTitle wikipediaDetails={store} />
|
||||||
</Tab>
|
</Tab>
|
||||||
{/each}
|
{/each}
|
||||||
|
@ -51,14 +51,5 @@
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Actually used, don't remove*/
|
/* Actually used, don't remove*/
|
||||||
.tab-selected {
|
|
||||||
background-color: rgb(59 130 246);
|
|
||||||
color: rgb(255 255 255);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Actually used, don't remove*/
|
|
||||||
.tab-unselected {
|
|
||||||
background-color: rgb(255 255 255);
|
|
||||||
color: rgb(0 0 0);
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -293,6 +293,48 @@ button.unstyled, .button-unstyled button {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****** Tablist elements *****/
|
||||||
|
|
||||||
|
.tablist {
|
||||||
|
margin: 0.25rem;
|
||||||
|
padding: 0.5rem;
|
||||||
|
border: 2px dashed var(--button-background-hover);
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab {
|
||||||
|
border: unset;
|
||||||
|
border-radius: 0;
|
||||||
|
transition: all;
|
||||||
|
color: var(--foreground-color);
|
||||||
|
border-bottom: 2px solid var(--foreground-color);
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
margin: 0.25rem;
|
||||||
|
padding: 0.25rem;
|
||||||
|
padding-left: 0.75rem;
|
||||||
|
padding-right: 0.75rem;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-selected {
|
||||||
|
opacity: 100%;
|
||||||
|
background: var(--interactive-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Actually used, don't remove*/
|
||||||
|
.tab-unselected {
|
||||||
|
background: #00000000 !important;
|
||||||
|
opacity: 60%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-unselected:hover {
|
||||||
|
background: var(--interactive-background);
|
||||||
|
}
|
||||||
|
|
||||||
/******* Other input elements ******/
|
/******* Other input elements ******/
|
||||||
|
|
||||||
.hover-alert:hover {
|
.hover-alert:hover {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue