From f3b42b591484889f6b26006dbe6f43fbe9e20119 Mon Sep 17 00:00:00 2001 From: Tony Yang Date: Thu, 25 Mar 2021 15:09:48 +0800 Subject: [PATCH] [Component] add EventBlock for Agenda --- src/assets/images/arrow-left.svg | 3 + src/assets/images/arrow-right.svg | 3 + src/assets/images/event-block-bg.svg | 3 + src/assets/images/group.svg | 16 ++++ src/assets/images/guide-outline.svg | 14 ++++ src/assets/images/lightning-outline.svg | 3 + src/assets/images/stall-outline.svg | 3 + src/assets/images/union.svg | 6 ++ src/assets/scss/agenda.scss | 17 ++++ src/assets/scss/eventblock.scss | 105 ++++++++++++++++++++++++ src/components/EventBlock.vue | 27 ++++++ src/pages/Agenda.vue | 25 +++++- 12 files changed, 222 insertions(+), 3 deletions(-) create mode 100644 src/assets/images/arrow-left.svg create mode 100644 src/assets/images/arrow-right.svg create mode 100644 src/assets/images/event-block-bg.svg create mode 100644 src/assets/images/group.svg create mode 100644 src/assets/images/guide-outline.svg create mode 100644 src/assets/images/lightning-outline.svg create mode 100644 src/assets/images/stall-outline.svg create mode 100644 src/assets/images/union.svg create mode 100644 src/assets/scss/agenda.scss create mode 100644 src/assets/scss/eventblock.scss create mode 100644 src/components/EventBlock.vue diff --git a/src/assets/images/arrow-left.svg b/src/assets/images/arrow-left.svg new file mode 100644 index 0000000..c74b2f2 --- /dev/null +++ b/src/assets/images/arrow-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/arrow-right.svg b/src/assets/images/arrow-right.svg new file mode 100644 index 0000000..3ee986d --- /dev/null +++ b/src/assets/images/arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/event-block-bg.svg b/src/assets/images/event-block-bg.svg new file mode 100644 index 0000000..341b097 --- /dev/null +++ b/src/assets/images/event-block-bg.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/group.svg b/src/assets/images/group.svg new file mode 100644 index 0000000..ba66cbe --- /dev/null +++ b/src/assets/images/group.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/src/assets/images/guide-outline.svg b/src/assets/images/guide-outline.svg new file mode 100644 index 0000000..5558a22 --- /dev/null +++ b/src/assets/images/guide-outline.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/src/assets/images/lightning-outline.svg b/src/assets/images/lightning-outline.svg new file mode 100644 index 0000000..c657333 --- /dev/null +++ b/src/assets/images/lightning-outline.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/stall-outline.svg b/src/assets/images/stall-outline.svg new file mode 100644 index 0000000..2ea6c65 --- /dev/null +++ b/src/assets/images/stall-outline.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/union.svg b/src/assets/images/union.svg new file mode 100644 index 0000000..22be503 --- /dev/null +++ b/src/assets/images/union.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/scss/agenda.scss b/src/assets/scss/agenda.scss new file mode 100644 index 0000000..efe9cc4 --- /dev/null +++ b/src/assets/scss/agenda.scss @@ -0,0 +1,17 @@ +#agenda { + margin: 0 auto; + max-width: 1200px; + + div.event.container { + display: grid; + grid-template-columns: min-content repeat(6, 1fr) min-content; + grid-template-rows: 1fr; + column-gap: 30px; + + img.arrow { + margin: auto; + width: auto; + height: calc(99/217 * 100%); + } + } +} \ No newline at end of file diff --git a/src/assets/scss/eventblock.scss b/src/assets/scss/eventblock.scss new file mode 100644 index 0000000..3585457 --- /dev/null +++ b/src/assets/scss/eventblock.scss @@ -0,0 +1,105 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+TC&display=swap'); + +.event.block { + position: relative; + height: 100%; + + display: inline-flex; + flex-direction: column; + align-items: center; + justify-content: center; + + font-size: 24px; + line-height: 1.44; + font-family: 'Noto Serif TC', serif; + font-weight: bold; + + .background { + width: 100%; + height: auto; + } + + .inner { + position: absolute; + width: 100%; + height: 100%; + padding: .75em; + + display: inline-flex; + align-items: center; + justify-content: center; + + text-align: center; + text-decoration: none; + color: white; + + span { + white-space: pre; + z-index: 1; + } + + i.icon { + position: absolute; + z-index: 0; + scale: 0.75; + + &::before { + width: 100%; + height: 100%; + display: block; + content: ''; + background-size: contain; + background-repeat: no-repeat; + } + + // different size for each icon + &.union { + width: 65px; + height: 79px; + + &::before { + background-image: url('../assets/images/union.svg'); + } + } + + &.stall-outline { + width: 61px; + height: 62px; + + &::before { + background-image: url('../assets/images/stall-outline.svg'); + } + } + + &.group { + width: 100px; + height: 85px; + + &::before { + background-image: url('../assets/images/group.svg'); + } + } + + &.lightning-outline { + margin-top: 10px; + width: 37px; + height: 78px; + + &::before { + background-image: url('../assets/images/lightning-outline.svg'); + } + } + + &.guide-outline { + margin-right: 40px; + width: 74px; + height: 95px; + + &::before { + background-image: url('../assets/images/guide-outline.svg'); + } + } + } + } + +} diff --git a/src/components/EventBlock.vue b/src/components/EventBlock.vue new file mode 100644 index 0000000..f4dcfa1 --- /dev/null +++ b/src/components/EventBlock.vue @@ -0,0 +1,27 @@ + + + + \ No newline at end of file diff --git a/src/pages/Agenda.vue b/src/pages/Agenda.vue index cb40fb6..bd2cc0e 100644 --- a/src/pages/Agenda.vue +++ b/src/pages/Agenda.vue @@ -1,11 +1,30 @@ - \ No newline at end of file + + \ No newline at end of file