aboutsummaryrefslogtreecommitdiff
path: root/src/components/WelcomeItem.vue
diff options
context:
space:
mode:
authorJoop Kiefte <ikojba@gmail.com>2023-10-05 22:59:11 +0100
committerJoop Kiefte <ikojba@gmail.com>2023-10-05 22:59:11 +0100
commit6f0a2d521ea68c468fff304b93e6ee7b0613b366 (patch)
tree8d2225672ac35160c964a48cd5f261c0eac25c2f /src/components/WelcomeItem.vue
Initialize web application via create-cloudflare CLI
Details: C3 = create-cloudflare@2.4.0 project name = bahaiprayers-json framework = vue framework cli = create-vue@3.7.5 package manager = bun@1.0.4 wrangler = wrangler@3.11.0 git = 2.42.0
Diffstat (limited to 'src/components/WelcomeItem.vue')
-rw-r--r--src/components/WelcomeItem.vue86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/components/WelcomeItem.vue b/src/components/WelcomeItem.vue
new file mode 100644
index 0000000..ac366d0
--- /dev/null
+++ b/src/components/WelcomeItem.vue
@@ -0,0 +1,86 @@
+<template>
+ <div class="item">
+ <i>
+ <slot name="icon"></slot>
+ </i>
+ <div class="details">
+ <h3>
+ <slot name="heading"></slot>
+ </h3>
+ <slot></slot>
+ </div>
+ </div>
+</template>
+
+<style scoped>
+.item {
+ margin-top: 2rem;
+ display: flex;
+ position: relative;
+}
+
+.details {
+ flex: 1;
+ margin-left: 1rem;
+}
+
+i {
+ display: flex;
+ place-items: center;
+ place-content: center;
+ width: 32px;
+ height: 32px;
+ color: var(--color-text);
+}
+
+h3 {
+ font-size: 1.2rem;
+ font-weight: 500;
+ margin-bottom: 0.4rem;
+ color: var(--color-heading);
+}
+
+@media (min-width: 1024px) {
+ .item {
+ margin-top: 0;
+ padding: 0.4rem 0 1rem calc(var(--section-gap) / 2);
+ }
+
+ i {
+ top: calc(50% - 25px);
+ left: -26px;
+ position: absolute;
+ border: 1px solid var(--color-border);
+ background: var(--color-background);
+ border-radius: 8px;
+ width: 50px;
+ height: 50px;
+ }
+
+ .item:before {
+ content: ' ';
+ border-left: 1px solid var(--color-border);
+ position: absolute;
+ left: 0;
+ bottom: calc(50% + 25px);
+ height: calc(50% - 25px);
+ }
+
+ .item:after {
+ content: ' ';
+ border-left: 1px solid var(--color-border);
+ position: absolute;
+ left: 0;
+ top: calc(50% + 25px);
+ height: calc(50% - 25px);
+ }
+
+ .item:first-of-type:before {
+ display: none;
+ }
+
+ .item:last-of-type:after {
+ display: none;
+ }
+}
+</style>