Skip to content

Commit b6723e2

Browse files
committed
First LP
1 parent e100a27 commit b6723e2

File tree

19 files changed

+488
-26
lines changed

19 files changed

+488
-26
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ jobs:
1212
uses: actions/setup-node@v4
1313
with:
1414
node-version: "20"
15+
cache: 'npm'
1516
- run: npm install
1617
- run: npm run generate
1718
- name: deploy

bun.lockb

64.1 KB
Binary file not shown.

components/AppHeader.vue

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<template>
2+
<div>
3+
<v-app-bar :elevation="0">
4+
<v-app-bar-nav-icon
5+
class="d-flex d-sm-none"
6+
variant="text"
7+
@click.stop="drawer = !drawer"/>
8+
<template #append>
9+
<!-- <v-btn>Schedule</v-btn>
10+
<v-btn>Speakers</v-btn>
11+
<v-btn>Sponsors</v-btn> -->
12+
<NuxtLink class="d-none d-sm-block" to="/"><v-btn>Home</v-btn></NuxtLink>
13+
<NuxtLink class="d-none d-sm-block" to="/venue"><v-btn>Venue</v-btn></NuxtLink>
14+
<NuxtLink class="d-none d-sm-block" to="/policies"><v-btn>Policies</v-btn></NuxtLink>
15+
<NuxtLink class="d-none d-sm-block" to="/about"><v-btn>About</v-btn></NuxtLink>
16+
<a class="d-none d-sm-block" href="https://suzuri.jp/kyobashirb" target="_blank"><v-btn>Goodies</v-btn></a>
17+
</template>
18+
</v-app-bar>
19+
<v-navigation-drawer v-model="drawer">
20+
<v-list>
21+
<NuxtLink to="/"><v-list-item>Home</v-list-item></NuxtLink>
22+
<NuxtLink to="/venue"><v-list-item>Venue</v-list-item></NuxtLink>
23+
<NuxtLink to="/policies"><v-list-item>Policies</v-list-item></NuxtLink>
24+
<NuxtLink to="/about"><v-list-item>About</v-list-item></NuxtLink>
25+
<a href="https://suzuri.jp/kyobashirb" target="_blank"><v-list-item>Goodies</v-list-item></a>
26+
</v-list>
27+
</v-navigation-drawer>
28+
</div>
29+
</template>
30+
31+
<script>
32+
export default {
33+
data: () => ({
34+
drawer: false,
35+
}),
36+
}
37+
</script>
38+
39+
<style scoped>
40+
.v-btn {
41+
color: #222222;
42+
}
43+
44+
.v-list-item {
45+
color: #222222;
46+
text-decoration: none;
47+
}
48+
</style>

components/Wave.vue

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<template>
2+
<svg id="svg" viewBox="0 0 1440 390" xmlns="http://www.w3.org/2000/svg" class="transition duration-300 ease-in-out delay-150">
3+
<path d="M 0,400 L 0,100 C 116.07655502392345,81.58851674641147 232.1531100478469,63.17703349282296 330,65 C 427.8468899521531,66.82296650717704 507.46411483253587,88.88038277511963 585,100 C 662.5358851674641,111.11961722488037 737.9904306220094,111.30143540669856 822,108 C 906.0095693779906,104.69856459330144 998.5741626794259,97.91387559808612 1103,96 C 1207.4258373205741,94.08612440191388 1323.712918660287,97.04306220095694 1440,100 L 1440,400 L 0,400 Z" stroke="none" stroke-width="0" fill="#419dbf" fill-opacity="0.53" class="transition-all duration-300 ease-in-out delay-150 path-0"/>
4+
<path d="M 0,400 L 0,233 C 77.37799043062202,242.61722488038276 154.75598086124404,252.23444976076556 236,251 C 317.24401913875596,249.76555023923444 402.3540669856459,237.67942583732057 525,225 C 647.6459330143541,212.32057416267943 807.8277511961724,199.04784688995215 912,196 C 1016.1722488038276,192.95215311004785 1064.3349282296651,200.1291866028708 1143,208 C 1221.6650717703349,215.8708133971292 1330.8325358851675,224.4354066985646 1440,233 L 1440,400 L 0,400 Z" stroke="none" stroke-width="0" fill="#419dbf" fill-opacity="1" class="transition-all duration-300 ease-in-out delay-150 path-1"/>
5+
</svg>
6+
</template>
7+
8+
<style>
9+
svg {
10+
transform: translateY(10px);
11+
}
12+
13+
.path-0{
14+
animation:pathAnim-0 4s;
15+
animation-timing-function: linear;
16+
animation-iteration-count: infinite;
17+
}
18+
19+
@keyframes pathAnim-0{
20+
0%{
21+
d: path("M 0,400 L 0,100 C 116.07655502392345,81.58851674641147 232.1531100478469,63.17703349282296 330,65 C 427.8468899521531,66.82296650717704 507.46411483253587,88.88038277511963 585,100 C 662.5358851674641,111.11961722488037 737.9904306220094,111.30143540669856 822,108 C 906.0095693779906,104.69856459330144 998.5741626794259,97.91387559808612 1103,96 C 1207.4258373205741,94.08612440191388 1323.712918660287,97.04306220095694 1440,100 L 1440,400 L 0,400 Z");
22+
}
23+
25%{
24+
d: path("M 0,400 L 0,100 C 75.77990430622009,101.11961722488039 151.55980861244018,102.23923444976076 248,107 C 344.4401913875598,111.76076555023924 461.5406698564593,120.16267942583733 570,120 C 678.4593301435407,119.83732057416267 778.2775119617226,111.11004784688994 871,116 C 963.7224880382774,120.88995215311006 1049.3492822966507,139.39712918660288 1143,139 C 1236.6507177033493,138.60287081339712 1338.3253588516745,119.30143540669856 1440,100 L 1440,400 L 0,400 Z");
25+
}
26+
50%{
27+
d: path("M 0,400 L 0,100 C 121.40669856459331,91.00478468899522 242.81339712918663,82.00956937799045 330,90 C 417.1866028708134,97.99043062200955 470.153110047847,122.96650717703349 551,122 C 631.846889952153,121.03349282296651 740.5741626794259,94.1244019138756 856,87 C 971.4258373205741,79.8755980861244 1093.55023923445,92.53588516746412 1192,98 C 1290.44976076555,103.46411483253588 1365.2248803827752,101.73205741626793 1440,100 L 1440,400 L 0,400 Z");
28+
}
29+
75%{
30+
d: path("M 0,400 L 0,100 C 128.8421052631579,89.07177033492823 257.6842105263158,78.14354066985645 340,84 C 422.3157894736842,89.85645933014355 458.1052631578948,112.49760765550239 541,116 C 623.8947368421052,119.50239234449761 753.8947368421052,103.86602870813397 851,86 C 948.1052631578948,68.13397129186603 1012.3157894736844,48.03827751196173 1105,50 C 1197.6842105263156,51.96172248803827 1318.842105263158,75.98086124401914 1440,100 L 1440,400 L 0,400 Z");
31+
}
32+
100%{
33+
d: path("M 0,400 L 0,100 C 116.07655502392345,81.58851674641147 232.1531100478469,63.17703349282296 330,65 C 427.8468899521531,66.82296650717704 507.46411483253587,88.88038277511963 585,100 C 662.5358851674641,111.11961722488037 737.9904306220094,111.30143540669856 822,108 C 906.0095693779906,104.69856459330144 998.5741626794259,97.91387559808612 1103,96 C 1207.4258373205741,94.08612440191388 1323.712918660287,97.04306220095694 1440,100 L 1440,400 L 0,400 Z");
34+
}
35+
}
36+
37+
.path-1{
38+
animation:pathAnim-1 4s;
39+
animation-timing-function: linear;
40+
animation-iteration-count: infinite;
41+
}
42+
43+
@keyframes pathAnim-1{
44+
0%{
45+
d: path("M 0,400 L 0,233 C 77.37799043062202,242.61722488038276 154.75598086124404,252.23444976076556 236,251 C 317.24401913875596,249.76555023923444 402.3540669856459,237.67942583732057 525,225 C 647.6459330143541,212.32057416267943 807.8277511961724,199.04784688995215 912,196 C 1016.1722488038276,192.95215311004785 1064.3349282296651,200.1291866028708 1143,208 C 1221.6650717703349,215.8708133971292 1330.8325358851675,224.4354066985646 1440,233 L 1440,400 L 0,400 Z");
46+
}
47+
25%{
48+
d: path("M 0,400 L 0,233 C 84.06698564593302,255.13397129186603 168.13397129186603,277.26794258373207 253,270 C 337.86602870813397,262.73205741626793 423.53110047846906,226.0622009569378 533,222 C 642.468899521531,217.9377990430622 775.7416267942582,246.48325358851676 869,241 C 962.2583732057418,235.51674641148324 1015.5023923444976,196.00478468899522 1104,189 C 1192.4976076555024,181.99521531100478 1316.248803827751,207.4976076555024 1440,233 L 1440,400 L 0,400 Z");
49+
}
50+
50%{
51+
d: path("M 0,400 L 0,233 C 95.48325358851676,255.23923444976077 190.96650717703352,277.47846889952154 270,280 C 349.0334928229665,282.52153110047846 411.6172248803829,265.32535885167465 522,253 C 632.3827751196171,240.67464114832535 790.5645933014354,233.22009569377988 888,237 C 985.4354066985646,240.77990430622012 1022.1244019138758,255.79425837320576 1104,257 C 1185.8755980861242,258.20574162679424 1312.9377990430621,245.60287081339712 1440,233 L 1440,400 L 0,400 Z");
52+
}
53+
75%{
54+
d: path("M 0,400 L 0,233 C 89.06220095693783,211 178.12440191387566,189 258,198 C 337.87559808612434,207 408.56459330143537,246.99999999999997 524,247 C 639.4354066985646,247.00000000000003 799.6172248803828,207.00000000000003 895,194 C 990.3827751196172,180.99999999999997 1020.9665071770335,195 1101,206 C 1181.0334928229665,217 1310.5167464114834,225 1440,233 L 1440,400 L 0,400 Z");
55+
}
56+
100%{
57+
d: path("M 0,400 L 0,233 C 77.37799043062202,242.61722488038276 154.75598086124404,252.23444976076556 236,251 C 317.24401913875596,249.76555023923444 402.3540669856459,237.67942583732057 525,225 C 647.6459330143541,212.32057416267943 807.8277511961724,199.04784688995215 912,196 C 1016.1722488038276,192.95215311004785 1064.3349282296651,200.1291866028708 1143,208 C 1221.6650717703349,215.8708133971292 1330.8325358851675,224.4354066985646 1440,233 L 1440,400 L 0,400 Z");
58+
}
59+
}
60+
</style>

eslint.config.mjs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import withNuxt from './.nuxt/eslint.config.mjs'
2+
import stylistic from '@stylistic/eslint-plugin'
3+
4+
export default withNuxt(
5+
{
6+
files: ['**/*.vue', '**/*.ts'],
7+
rules: {
8+
'no-console': 'error',
9+
'@typescript-eslint/no-explicit-any': 'error',
10+
},
11+
},
12+
{
13+
files: ['**/*.vue'],
14+
rules: {
15+
'vue/no-multiple-template-root': 'error',
16+
'vue/require-v-for-key': 'error',
17+
'vue/no-use-v-if-with-v-for': 'error',
18+
},
19+
},
20+
stylistic.configs.customize({
21+
indent: 2,
22+
quotes: 'single',
23+
semi: false,
24+
trailingComma: 'all',
25+
arrowParens: 'always',
26+
bracketSpacing: true,
27+
}),
28+
)

nuxt.config.ts

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ export default defineNuxtConfig({
99
modules: [
1010
(_options, nuxt) => {
1111
nuxt.hooks.hook('vite:extendConfig', (config) => {
12-
// @ts-expect-error
12+
// @ts-expect-error `config` is Vite's config
1313
config.plugins.push(vuetify({ autoImport: true }))
1414
})
1515
},
16-
//...
16+
'@nuxt/eslint',
1717
],
1818
vite: {
1919
vue: {
@@ -22,7 +22,33 @@ export default defineNuxtConfig({
2222
},
2323
},
2424
},
25+
components: [
26+
{
27+
path: '~/components',
28+
pathPrefix: false,
29+
},
30+
],
2531
app: {
32+
head: {
33+
title: 'Osaka RubyKaigi 04',
34+
meta: [
35+
{ charset: 'utf-8' },
36+
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
37+
],
38+
link: [
39+
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
40+
{
41+
rel: 'stylesheet',
42+
href: 'https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Federo&family=Raleway:ital,wght@0,100..900;1,100..900&family=Saira+Extra+Condensed:wght@100;200;300;400;500;600;700;800;900&display=swap',
43+
crossorigin: '',
44+
},
45+
],
46+
},
2647
baseURL: '/osaka04/',
2748
},
49+
eslint: {
50+
config: {
51+
stylistic: true,
52+
},
53+
},
2854
})

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
"dev": "nuxt dev",
88
"generate": "nuxt generate",
99
"preview": "nuxt preview",
10-
"postinstall": "nuxt prepare"
10+
"postinstall": "nuxt prepare",
11+
"lint": "eslint .",
12+
"format": "eslint --fix . "
1113
},
1214
"dependencies": {
1315
"@mdi/font": "^7.4.47",
@@ -16,6 +18,8 @@
1618
"vue-router": "^4.3.0"
1719
},
1820
"devDependencies": {
21+
"@nuxt/eslint": "^0.3.13",
22+
"eslint": "^9.3.0",
1923
"vite-plugin-vuetify": "^2.0.3",
2024
"vuetify": "^3.5.14"
2125
}

pages/about/index.vue

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<template>
2+
<v-app class="fill-height">
3+
<AppHeader />
4+
<v-row>
5+
<v-col align="center">
6+
<v-card max-width="70vw" min-width="70vw" class="py-10" :elevation="0">
7+
<v-card-item>
8+
<v-img src="/logo.png" width="10vh"/>
9+
<h1 class="text-h2 title mb-15">About</h1>
10+
<div align="left">
11+
<h2 class="text-h5 title mb-2">Osaka RubyKaigiとは</h2>
12+
<p class="text-body-1 mb-10">
13+
大阪Ruby会議は、大阪で定期的に開催しているRubyプログラミング言語に関するカンファレンスです。<br>
14+
Rubyに関する知見・技術を共有し、またRubyistの交流の場として、皆様に楽しんでいただけるカンファレンスを目指しています。<br>
15+
この夏、一番アツいRubyKaigiにぜひご参加ください!
16+
</p>
17+
<h2 class="text-h5 title mb-2">Contact</h2>
18+
<div class="text-body-1 mb-10">
19+
20+
</div>
21+
<h2 class="text-h5 title mb-2">Team</h2>
22+
<v-row>
23+
<v-col md="4" sm="6" xs="6">
24+
<v-card flat>
25+
<div class="py-2 px-2">
26+
<v-img src="/orgernizers/ydah.jpeg" height="250px" cover></v-img>
27+
<v-card-title>ydah</v-card-title>
28+
<v-card-subtitle>Cheif Organizer / Designer</v-card-subtitle>
29+
<div class="d-flex justify-center">
30+
<a href="https://twitter.com/ydah_"><v-btn class="mx-2" icon="mdi-twitter" flat></v-btn></a>
31+
<a href="https://github.com/ydah"><v-btn class="mx-2" icon="mdi-github" flat></v-btn></a>
32+
</div>
33+
</div>
34+
</v-card>
35+
</v-col>
36+
<v-col md="4" sm="6" xs="6">
37+
<v-card flat>
38+
<div class="py-2 px-2">
39+
<v-img src="/orgernizers/hachi.jpg" height="250px" cover></v-img>
40+
<v-card-title>hachi</v-card-title>
41+
<v-card-subtitle>Organizer</v-card-subtitle>
42+
<div class="d-flex justify-center">
43+
<a href="https://twitter.com/hachiblog"><v-btn class="mx-2" icon="mdi-twitter" flat></v-btn></a>
44+
<a href="https://github.com/hayaokimura"><v-btn class="mx-2" icon="mdi-github" flat></v-btn></a>
45+
</div>
46+
</div>
47+
</v-card>
48+
</v-col>
49+
<v-col md="4" sm="6" xs="6">
50+
<v-card flat>
51+
<div class="py-2 px-2">
52+
<v-img src="/orgernizers/ogom.jpeg" height="250px" cover></v-img>
53+
<v-card-title>おごもり</v-card-title>
54+
<v-card-subtitle>Organizer</v-card-subtitle>
55+
<div class="d-flex justify-center">
56+
<a href="https://twitter.com/ogomr"><v-btn class="mx-2" icon="mdi-twitter" flat></v-btn></a>
57+
<a href="https://github.com/ogom"><v-btn class="mx-2" icon="mdi-github" flat></v-btn></a>
58+
</div>
59+
</div>
60+
</v-card>
61+
</v-col>
62+
</v-row>
63+
</div>
64+
</v-card-item>
65+
</v-card>
66+
<Wave />
67+
<div class="footer">
68+
Osaka RubyKaigi 04 ©2024 <br>
69+
Designed by <a href="https://twitter.com/ydah_">@ydah_</a>
70+
</div>
71+
</v-col>
72+
</v-row>
73+
</v-app>
74+
</template>
75+
76+
<style>
77+
* {
78+
box-sizing: border-box;
79+
}
80+
81+
.title {
82+
font-family: 'Federo', sans-serif;
83+
font-weight: 1000;
84+
}
85+
86+
.text-body-1 {
87+
line-height: 1.7;
88+
}
89+
90+
.footer {
91+
color: #fff;
92+
background-color: #419dbf;
93+
padding-top: 50px;
94+
padding-bottom: 15px;
95+
}
96+
97+
.footer a {
98+
color: #fff;
99+
}
100+
</style>

0 commit comments

Comments
 (0)