feat(components/tiles/pages): text page
This commit is contained in:
parent
ee42b07e6a
commit
7875fedc83
5 changed files with 61 additions and 17 deletions
|
|
@ -60,6 +60,7 @@ Metro-like tile. Must be in a group to display correctly.
|
||||||
let {
|
let {
|
||||||
size,
|
size,
|
||||||
row,
|
row,
|
||||||
|
icon,
|
||||||
column,
|
column,
|
||||||
children,
|
children,
|
||||||
}: {
|
}: {
|
||||||
|
|
@ -78,6 +79,11 @@ Metro-like tile. Must be in a group to display correctly.
|
||||||
*/
|
*/
|
||||||
column: number;
|
column: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Icon. Must be a valid URL.
|
||||||
|
*/
|
||||||
|
icon: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pages.
|
* Pages.
|
||||||
*/
|
*/
|
||||||
|
|
@ -162,6 +168,7 @@ Metro-like tile. Must be in a group to display correctly.
|
||||||
<div
|
<div
|
||||||
class={style({ size })}
|
class={style({ size })}
|
||||||
style="
|
style="
|
||||||
|
--tile-icon: url('{icon}');
|
||||||
--tile-icon-size: {iconSize}px;
|
--tile-icon-size: {iconSize}px;
|
||||||
--tile-page-height: {pageHeight}px;
|
--tile-page-height: {pageHeight}px;
|
||||||
--tile-name-display: {size !== 'small' ? 'inline' : 'none'};
|
--tile-name-display: {size !== 'small' ? 'inline' : 'none'};
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,8 @@ Icon page for a tile. Must be in a tile to display correctly.
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
let {
|
let {
|
||||||
icon,
|
|
||||||
name,
|
name,
|
||||||
}: {
|
}: {
|
||||||
/**
|
|
||||||
* Icon. Must be a valid URL.
|
|
||||||
*/
|
|
||||||
icon: string;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name.
|
* Name.
|
||||||
*/
|
*/
|
||||||
|
|
@ -25,7 +19,7 @@ Icon page for a tile. Must be in a tile to display correctly.
|
||||||
class="flex flex-col justify-end bg-center bg-no-repeat"
|
class="flex flex-col justify-end bg-center bg-no-repeat"
|
||||||
style="
|
style="
|
||||||
height: var(--tile-page-height);
|
height: var(--tile-page-height);
|
||||||
background-image: url('{icon}');
|
background-image: var(--tile-icon);
|
||||||
background-size: var(--tile-icon-size);
|
background-size: var(--tile-icon-size);
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,11 @@ Image page for a tile. Must be in a tile to display correctly.
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="w-full bg-cover bg-center bg-no-repeat"
|
class="flex flex-col justify-end bg-cover bg-center bg-no-repeat"
|
||||||
style="height: var(--tile-page-height); background-image: url('{image}');"
|
style="height: var(--tile-page-height); background-image: url('{image}');"
|
||||||
></div>
|
>
|
||||||
|
<div
|
||||||
|
class="w-[20px] mt-auto aspect-square bg-contain bg-center bg-no-repeat self-end m-2"
|
||||||
|
style="background-image: var(--tile-icon);"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
|
|
||||||
37
src/lib/components/tiles/pages/TileTextPage.svelte
Normal file
37
src/lib/components/tiles/pages/TileTextPage.svelte
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!--
|
||||||
|
@component
|
||||||
|
|
||||||
|
Text page for a tile. Must be in a tile to display correctly.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
let {
|
||||||
|
title,
|
||||||
|
subtitle,
|
||||||
|
text,
|
||||||
|
}: {
|
||||||
|
title: string;
|
||||||
|
subtitle?: string;
|
||||||
|
text?: string;
|
||||||
|
} = $props();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="p-2 w-full flex flex-col gap-1 select-none text-white"
|
||||||
|
style="height: var(--tile-page-height);"
|
||||||
|
>
|
||||||
|
<h1 class="font-bold text-md">{title}</h1>
|
||||||
|
|
||||||
|
{#if subtitle}
|
||||||
|
<h2 class="text-md">{subtitle}</h2>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if text}
|
||||||
|
<p class="text-sm">{text}</p>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="w-[20px] mt-auto aspect-square bg-contain bg-center bg-no-repeat self-end"
|
||||||
|
style="background-image: var(--tile-icon);"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
|
@ -8,24 +8,25 @@
|
||||||
import TileGroup from "$lib/components/tiles/TileGroup.svelte";
|
import TileGroup from "$lib/components/tiles/TileGroup.svelte";
|
||||||
import TileIconPage from "$lib/components/tiles/pages/TileIconPage.svelte";
|
import TileIconPage from "$lib/components/tiles/pages/TileIconPage.svelte";
|
||||||
import TileImagePage from "$lib/components/tiles/pages/TileImagePage.svelte";
|
import TileImagePage from "$lib/components/tiles/pages/TileImagePage.svelte";
|
||||||
|
import TileTextPage from "$lib/components/tiles/pages/TileTextPage.svelte";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<TileGroup title="a lot of mikhails" rows={3} columns={3}>
|
<TileGroup title="a lot of mikhails" rows={3} columns={3}>
|
||||||
<Tile size="small" row={5} column={2}>
|
<Tile size="small" row={5} column={2} icon={iconSynzr}>
|
||||||
<TileIconPage icon={iconSynzr} name="mikhail" />
|
<TileIconPage name="mikhail" />
|
||||||
</Tile>
|
</Tile>
|
||||||
|
|
||||||
<Tile size="medium" row={3} column={5}>
|
<Tile size="medium" row={3} column={5} icon={iconSynzr}>
|
||||||
<TileIconPage icon={iconSynzr} name="mikhail" />
|
<TileIconPage name="mikhail" />
|
||||||
</Tile>
|
</Tile>
|
||||||
|
|
||||||
<Tile size="wide" row={5} column={3}>
|
<Tile size="wide" row={5} column={3} icon={iconSynzr}>
|
||||||
<TileIconPage icon={iconSynzr} name="mikhail" />
|
|
||||||
<TileImagePage image={imageTestRectangle} />
|
<TileImagePage image={imageTestRectangle} />
|
||||||
|
<TileTextPage title="Title" subtitle="Subtitle" text="Text" />
|
||||||
</Tile>
|
</Tile>
|
||||||
|
|
||||||
<Tile size="large" row={1} column={1}>
|
<Tile size="large" row={1} column={1} icon={iconSynzr}>
|
||||||
<TileIconPage icon={iconSynzr} name="mikhail" />
|
<TileIconPage name="mikhail" />
|
||||||
<TileImagePage image={imageTestSquare} />
|
<TileImagePage image={imageTestSquare} />
|
||||||
</Tile>
|
</Tile>
|
||||||
</TileGroup>
|
</TileGroup>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue