This commit is contained in:
Adam Sobotka 2022-10-12 13:52:38 +02:00
revize 6d0e5d2b95
71 změnil soubory, kde provedl 7463 přidání a 0 odebrání

13
.eslintignore Normal file
Zobrazit soubor

@ -0,0 +1,13 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock

15
.eslintrc.cjs Normal file
Zobrazit soubor

@ -0,0 +1,15 @@
module.exports = {
root: true,
extends: ['eslint:recommended', 'prettier'],
plugins: ['svelte3'],
overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020
},
env: {
browser: true,
es2017: true,
node: true
}
};

8
.gitignore vendorováno Normal file
Zobrazit soubor

@ -0,0 +1,8 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example

1
.npmrc Normal file
Zobrazit soubor

@ -0,0 +1 @@
engine-strict=true

13
.prettierignore Normal file
Zobrazit soubor

@ -0,0 +1,13 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock

9
.prettierrc Normal file
Zobrazit soubor

@ -0,0 +1,9 @@
{
"useTabs": true,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 100,
"plugins": ["prettier-plugin-svelte"],
"pluginSearchDirs": ["."],
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
}

38
README.md Normal file
Zobrazit soubor

@ -0,0 +1,38 @@
# create-svelte
Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
## Creating a project
If you're seeing this, you've probably already done this step. Congrats!
```bash
# create a new project in the current directory
npm create svelte@latest
# create a new project in my-app
npm create svelte@latest my-app
```
## Developing
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
```bash
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
```
## Building
To create a production version of your app:
```bash
npm run build
```
You can preview the production build with `npm run preview`.
> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.

5969
package-lock.json vygenerováno Normal file

Rozdílový obsah nebyl zobrazen, protože je příliš veliký Načíst rozdílové porovnání

30
package.json Normal file
Zobrazit soubor

@ -0,0 +1,30 @@
{
"name": "eb2-website",
"version": "0.0.1",
"private": true,
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"test": "playwright test",
"lint": "prettier --plugin-search-dir . --check . && eslint .",
"format": "prettier --plugin-search-dir . --write ."
},
"devDependencies": {
"@playwright/test": "^1.25.0",
"@sveltejs/adapter-auto": "next",
"@sveltejs/kit": "next",
"autoprefixer": "^10.4.12",
"eslint": "^8.16.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-svelte3": "^4.0.0",
"postcss": "^8.4.17",
"prettier": "^2.6.2",
"prettier-plugin-svelte": "^2.7.0",
"svelte": "^3.44.0",
"svelte-preprocess": "^4.10.7",
"tailwindcss": "^3.1.8",
"vite": "^3.1.0"
},
"type": "module"
}

9
playwright.config.js Normal file
Zobrazit soubor

@ -0,0 +1,9 @@
/** @type {import('@playwright/test').PlaywrightTestConfig} */
const config = {
webServer: {
command: 'npm run build && npm run preview',
port: 4173
}
};
export default config;

6
postcss.config.cjs Normal file
Zobrazit soubor

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

653
spec.json Normal file
Zobrazit soubor

@ -0,0 +1,653 @@
{
"id": "ethbrno2",
"name": "ETHBrno",
"shortname": "ETHBrno",
"description": "ETHBrno² is an annual independent & open community hackathon",
"dates": [
"2022-11-11",
"2022-11-13"
],
"places": ["Impact Hub Brno", "Clubco Brno"],
"country": "Czech Republic",
"links": {
"web": "https://ethbrno.cz",
"docs": "https://docs.ethbrno.cz/",
"twitter": "https://twitter.com/ethbrno",
"telegram": "https://t.me/ethbrno",
"matrix": "https://matrix.to/#/#ethbrno:gwei.cz"
},
"schemaVersion": 1,
"spec": {
"speakers": [
{
"id": "rachel-rose",
"name": "Rachel-Rose O'Leary",
"remote": false,
"twitter": "lunar_mining",
"linkedin": null,
"bio": "DarkFi core dev, writer",
"orgs": "[DarkFi](https://dark.fi/)",
"web": {
"name": "DarkFi",
"url": "https://dark.fi/"
},
"tracks": [
"lunarpunk",
"privacy"
],
"country": "us",
"desc": "Rachel-Rose O'Leary is a software developer working in anonymity, systems development and cryptography. She was lead tech writer for CoinDesk 2017-2018, covering privacy tech and ethereum. She has a background in digital art and philosophy, and has been writing about crypto since 2015.",
"photos": [
"web:jpg"
]
},
{
"id": "vorotnikov",
"name": "Artem Vorotnikov",
"remote":true,
"twitter": "vorot93",
"linkedin": null,
"bio": "Ethereum Core Developer, creator of Akula",
"orgs": "[Akula](https://akula.app/)",
"web": {
"name": "Akula",
"url": "https://akula.app/"
},
"tracks": [
"eth2"
],
"country": "us",
"desc": "Rachel-Rose O'Leary is a software developer working in anonymity, systems development and cryptography. She was lead tech writer for CoinDesk 2017-2018, covering privacy tech and ethereum. She has a background in digital art and philosophy, and has been writing about crypto since 2015.",
"photos": [
"web:jpg"
]
}
],
"tracks": [
{
"id": "lunarpunk",
"name": "Dark side of the cycle",
"shortname": "Lunarpunk",
"examples": "* anonymous exchanges * Dark Forest infrastructure "
},
{
"id": "privacy",
"name": "Privacy",
"examples": "* censorship-resistant infrastructure * zero knowledge"
},
{
"id": "eth2",
"name": "Post Merge Ethereum",
"examples": "* scaling ETH * light clients"
}
],
"event-types": [
{
"id": "talk",
"name": "Talk"
},
{
"id": "workshop",
"name": "Workshop"
},
{
"id": "panel",
"name": "Panel Debate",
"shortname": "Panel"
},
{
"id": "lightning-series",
"name": "Lightning Talks",
"shortname": "lightnings",
"url": "https://docs.utxo.cz/hlavni-program/formaty-programu#bleskova-prednaska-lightning-talk"
},
{
"id": "other",
"name": "Others"
}
],
"events": [
{
"id": "o-praci-v-kryptu",
"type": "panel",
"name": "Z normální práce do krypta",
"speakers": [
"sona-parke",
"stana-mutlova",
"denisa-brichtova",
"jana-kubatova",
"lenka-stawarczyk"
],
"track": "zaklady",
"duration": 85,
"difficulty": "advanced",
"tags": [
"práce",
"lifestyle",
"budoucnost",
"finanční nezávislost",
"ženy"
],
"popularity": 0.9,
"description": "Největší rozdíly “normální” práce a práce v kryptu? A proč vůbec přecházet? Jsou hlavní motivací obvykle prachy? První práce v kryptu umí být náraz. Mentální i fyzický. Tady se dozvíte, co pomáhá to ustát. A vytušíte, jaké to je, pracovat v kryptu a jestli je to pro vás. A jako bonus se možná i dozvíte kudy na to."
},
{
"id": "btc-vs-altcoiny",
"type": "panel",
"name": "Bitcoin vs. altcoiny",
"speakers": [
"libor-flossler",
"josef-tetek",
"david-stancel"
],
"duration": 85,
"difficulty": "beginner",
"track": "btc",
"tags": [
"Bitcoin",
"Lightning Network",
"altcoiny",
"DeFi",
"finanční svoboda"
],
"popularity": 1,
"fixed": {
"date": "2022-06-05"
},
"description": "Diskuze bude probíhat mezi Bitcoin maximalistou Pepou Tětkem a Krypto realistou Davidem Stancelem. Cílem prezentace bude otevřená diskuze o parametrech, smysluplnosti, rizicích a potenciálním využití alterntivních kryptoměn v porovnání s Bitcoinem. Diskuzi bude moderovat Libor z Investocky.",
"video": {
"youtube": "WQLOuZRJbvk"
}
}
],
"stages": [
{
"id": "rajska-zahrada",
"name": "P1 Rajská zahrada",
"types": [
"talk",
"panel",
"lightning-series"
],
"capacity": {
"seat": 320,
"stand": 80
},
"exclusivity": 1,
"times": [
"1/09:00-14:00",
"1/14:30-19:00",
"2/10:00-14:00",
"2/15:00-19:00"
],
"livestream": true,
"streams": [
"1/08:45-19:30/jJUn50_iyFI",
"2/09:45-19:15/osNm7D1R3rw"
]
},
{
"id": "lustrovy-sal",
"name": "P2 Lustrový sál",
"types": [
"talk",
"panel",
"lightning-series"
],
"capacity": {
"seat": 135,
"stand": 50
},
"exclusivity": 0.8,
"times": [
"1/09:30-13:00",
"1/13:30-19:30",
"2/10:00-13:00",
"2/13:30-18:30"
],
"livestream": true,
"streams": [
"1/09:15-19:30/e73I-rQBozk",
"2/09:45-18:30/WCoAJhVLLbM"
]
},
{
"id": "klenbovy-sal",
"name": "P3 Klenbový sál",
"types": [
"talk",
"lightning-series"
],
"capacity": {
"seat": 135,
"stand": 50
},
"exclusivity": 0.6,
"times": [
"1/09:30-13:00",
"1/13:30-19:30",
"2/10:00-13:00",
"2/13:30-18:30"
],
"livestream": true,
"streams": [
"1/09:15-19:30/tkRVtaCCgwk",
"2/09:45-18:30/GZ5FFWTleTk"
]
},
{
"id": "exit-room",
"name": "P4 Exit room",
"types": [
"talk"
],
"capacity": {
"seat": 70,
"stand": 30
},
"exclusivity": 0.4,
"times": [
"1/09:30-13:30",
"1/14:00-19:30",
"2/10:00-13:30",
"2/14:00-18:30"
],
"livestream": true,
"streams": [
"1/09:15-19:30/ku_qtzNsotg",
"2/09:45-18:30/Gsf9ubuh7rU"
]
},
{
"id": "knihovna",
"name": "W1 Knihovna",
"types": [
"workshop"
],
"capacity": {
"seat": 40,
"stand": 20
},
"exclusivity": 1,
"times": [
"1/09:30-13:30",
"1/14:00-19:30",
"2/10:00-13:30",
"2/14:00-18:30"
]
},
{
"id": "white-workshop-room",
"name": "W2 Table room",
"types": [
"workshop"
],
"capacity": {
"seat": 35,
"stand": 15
},
"exclusivity": 0.5,
"times": [
"1/09:30-13:30",
"1/14:00-19:30",
"2/10:00-13:30",
"2/14:00-18:30"
]
},
{
"id": "campfire-outdoor",
"name": "🔥 C1 Campfire (venku)",
"types": [
"campfire"
],
"capacity": {
"seat": 40,
"stand": 100
},
"times": [
"1/09:30-12:00",
"1/12:30-17:00",
"2/10:00-12:00",
"2/12:30-18:30"
]
},
{
"id": "campfire-indoor",
"name": "🔥 C2 Campfire (uvnitř)",
"types": [
"campfire"
],
"capacity": {
"seat": 20,
"stand": 80
},
"times": [
"1/09:30-12:00",
"1/12:30-19:00",
"2/10:00-12:00",
"2/12:30-18:00"
]
},
{
"id": "nft-chillout",
"name": "NFT chillout",
"types": [
"nft-event"
],
"capacity": {
"seat": 30,
"stand": 40
},
"times": [
"1/09:30-20:00",
"2/10:00-18:00"
],
"hidden": true
},
{
"id": "pitevna",
"name": "Pitevna",
"types": [
"other"
],
"capacity": {
"seat": 0,
"stand": 150
},
"times": [
"1/16:00-23:59"
]
}
],
"faqs": [
{
"question": "Jaký je časový harmonogram?",
"answer": "Časový harmonogram všech přednášek bude zveřejněn nejpozději v pondělí 30. května ráno. Tady je zatím hrubý časový plán:* **Sobota**: 8:00 otevření, 9:00-9:15 zahájení, 9:30-19:30 program, 20:00-02:00+ party* **Neděle**: 9:00 otevření, 10:00-18:30 program, 18:30-19:00 zakončení, 20:00 uzavření"
}
],
"partners": [
{
"id": "gweicz",
"name": "Gwei.cz",
"type": "community",
"twitter": "gweicz",
"desc": "Ethereum/DeFi/Web3 komunita",
"photos": [
"twitter:jpg"
]
},
{
"id": "holky-v-kryptu",
"name": "Holky v kryptu",
"type": "community",
"twitter": "holkyvkryptu",
"desc": "Komunita pro začínající a mírně pokročilé uživatele",
"photos": [
"twitter:jpg"
]
}
],
"team": {
"persons": {
"tereza": {
"name": "Tereza Starostová",
"twitter": "tatereza5",
"desc": "Zástupce [Holky v Kryptu](https://holkyvkryptu.cz/)"
},
"tree": {
"name": "Tree",
"twitter": "treecz",
"desc": "Zástupce [Gwei.cz](http://gwei.cz/) a [BohemianDAO](http://bohemiandao.cz/)"
},
"exez": {
"name": "Exez",
"twitter": "OndraPulc"
},
"petr": {
"name": "Petr Klein",
"twitter": "kleinpetr_com"
},
"jiri": {
"name": "Jiří Čepelka",
"twitter": "JiriCepelka"
}
},
"teams": {
"core": {
"name": "Core",
"desc": "Hlavní team který koordinuje ostatní teamy a fakticky reprezentuje konferenci.",
"members": [
"tree",
"tereza",
"vojtch"
],
"lead": "tereza"
},
"legal": {
"name": "Legal",
"desc": "Legální entita (UTXO Foundation, z.s.), právní aspekty, účetnictví atp.",
"members": [
"tree",
"tereza",
"simona",
"petr"
],
"lead": "tereza"
},
"sponsorship": {
"name": "Sponzorství",
"parent": "finance",
"desc": "Shánění a domlouvání sponzorů.",
"members": [
"vojtch",
"tereza"
],
"lead": "vojtch"
},
"venue": {
"name": "Místo konání",
"desc": "Vše co se týká místa konání a jeho vybavení.",
"members": [
"tereza",
"tree",
"vojtch"
],
"lead": "tereza"
},
"catering": {
"name": "Catering",
"parent": "venue",
"desc": "Řešení jídla pro návštěvníky.",
"members": [
"tereza",
"tree",
"vojtch"
],
"lead": "tereza"
},
"program": {
"name": "Program",
"desc": "Dramaturgie konference - hlavní a doprovodný program.",
"members": [
"tree",
"tereza"
],
"lead": "tree"
},
"speakers": {
"name": "Přednášející",
"parent": "program",
"desc": "Shánění a koordinace přednášejících.",
"members": [
"tree",
"tereza"
],
"lead": "tree"
},
"design": {
"name": "Design",
"desc": "Vizuální identita apod.",
"members": [
"tereza",
"tree",
"exez"
],
"lead": "tereza"
},
"marketing": {
"name": "Marketing",
"desc": "Aktivity propagující konferenci, sociální sítě.",
"members": [
"tereza",
"tree",
"jiri"
],
"lead": "tereza"
},
"web-ticketing": {
"name": "Web a ticketing",
"desc": "Technická realizace webu a ticketingu (prodej vstupenek).",
"members": [
"tree",
"vojtch"
],
"lead": "tree"
},
"party": {
"name": "Party",
"parent": "program",
"desc": "Společenský večer a party, která se uskuteční v rámci konference.",
"members": [
"tereza",
"tree"
],
"lead": "tree"
}
}
},
"practical-info": [
{
"id": "doprava",
"name": "Doprava",
"text": "Gabriel Loci se nachází na pražském Smíchově na adrese ***Holečkova 106/10, 150 00 Praha 5-Smíchov*** ([mapa](https://goo.gl/maps/RW4gBPZZeDRRLkNk9)).Hlavní vstup do areálu: [GPS 50.074779, 14.396471](https://what3words.com/fandit.%C4%8Detn%C3%A1.hl%C3%ADdka \"GPS 50.074779, 14.396471\") ## Hromadná doprava (MHD)Doporučená velkokapacitní varianta dopravy na místo konání je využít metro na stanici Anděl (linka B) a odtud pěšky 900m, [viz. níže](#pěšky-od-metra-anděl-linka-b). Další varianty jsou přiblížit se o jednu stanici blíže [tramvají](#tramvaj), nebo přijet ke Gabriel Loci nejblíže [autobusem](#autobus), který ale nejezdí tak často a rozhodně nebude velkokapacitní (možné tlačenice).Ceny jízdného v pražské MHD ([web](https://pid.cz/praha/)): 30 minut - 30 Kč, 90 minut - 40 Kč, 24 hodin - 120 Kč, 72 hodin - 330 Kč.Na nákup jízdenky v mobilu a vyhledávání spojení doporučujeme aplikaci [PID Lítačka](https://app.pidlitacka.cz/) ([Android](https://play.google.com/store/apps/details?id=cz.dpp.praguepublictransport), [iOS](https://apps.apple.com/cz/app/pid-litacka/id983071129)).### Pěšky od metra Anděl (linka B)Konference se nachází 900m od stanice metra B \"Anděl\" spojovací lávkou OC Nový Smíchov (z 1. patra) a poté krátkou procházkou parkem Sacré Coeur.Připravili jsme [cestu v Google Maps](https://www.google.com/maps/dir/50.0714086,14.4041228/Kl%C3%A1%C5%A1ter+Svat%C3%A9ho+Gabriela,+Hole%C4%8Dkova+106%2F10,+150+00+Praha+5-Sm%C3%ADchov/@50.0732931,14.3995812,17.53z/data=!4m9!4m8!1m0!1m5!1m1!1s0x470b94ffe90d8bef:0xe44f072ee3ed8c90!2m2!1d14.3960564!2d50.0748648!3e2 \"cestu v google maps\") přímo ze stanice metra až na konferenci.### TramvajNejbližší tramvajová zastávka je [Bertramka](https://goo.gl/maps/FvpgohrsEMzShQLe7). Dostanete se na ní linkami 9, 10, 15, 16, 44.Po výstupu na zastávce Bertramka Vás čeká ještě cca 450 metrů pěšky. Připravili jsme [cestu v Google Maps](https://www.google.com/maps/dir/Bertramka,+Sm%C3%ADchov,+150+00+Praha+5/50.0747697,14.3964571/@50.0745687,14.3958081,103m/data=!3m1!1e3!4m9!4m8!1m5!1m1!1s0x470b95aace507bb5:0xb36fd7c9183b2e8f!2m2!1d14.392434!2d50.072239!1m0!3e2) přímo ze zastávky až na konferenci. ### AutobusHromadnou dopravou se k nám nejblíže dostanete [autobusem 176](https://jrportal.dpp.cz/DataFTP/JRPortalData/176/20220523/176_(237_10)T.pdf \"autobusem 176\") ze kterého vystoupíte na zastávce Holečkova a následně půjdete 50 metrů \"z kopce\".Autobus jezdí jednou za 15-20 minut z [autobusové zastávky](https://goo.gl/maps/QRp9pdQ7dduhJJTEA) u metra Karlovo Náměstí (Linka B). Doba jízdy z Karlova náměstí je 15 minut a všechny spoje zajišťuje nízkopodlažní vozidlo.## AutoV Praze 5 jsou modré zóny, **v areálu bohužel nejsou volné parkovací plochy**, doporučujeme auto zaparkovat na záchytných parkovištích P+R Prahy a poté pokračovat MHD - přehled, aktuální obsazenost + ceny celodenního parkování 50-100 Kč, 24 hodin 200 Kč, najdete na této [stránce](https://www.dpp.cz/cestovani/parkovani-p-r).Parking v OC Nový Smíchov je na 5 hodin zdarma o víkendu, Víkendové parkování za 590 Kč V -1. podlaží a v -2. podlaží. Od pátku 16:00 do neděle 18:00. Pro více informací navštivte jejich [web](https://novy-smichov.klepierre.cz/aktualni-akce/akce/parkovani).TIP: Parkování na Praze 13 zdarma (nejsou modré zóny) na sídlišti u metra. Ulice: Petržílkova (metro Hůrka), Ovčí hájek (metro Nové Butovice) -> 10 minut na stanici Anděl.## TaxiDoporučujeme vystoupit u křižovatek *Holečkova / Kobrova* nebo *Holečkova / Švédská*.V Praze fungují taxi aplikace [Uber](https://uber.com/), [Bolt](https://bolt.eu/) nebo [Liftago](https://www.liftago.com/)."
},
{
"id": "jidlo-piti",
"name": "Jídlo a pití",
"text": "## Hlavní jídlaNa místě bude několik vybraných food trucků, které nabídnou široké spektrum jídel. Krom burgerů se můžete těšit na italskou kuchyni, ale také třeba na barevné veganské sushi.## Menší jídlaFood trucky budou nabízet i menší jídla a dezerty, pokud budete mít chuť na svačinku :)## PitíV celém objektu se bude nacházet několik barů ve kterých bude možné koupit pivo nebo třeba colu. Dostupné bude především pivo Budvar 33, ale samozřejmě také další značky. Večer budou na barech dostupné i drinky.Balená voda bude pro účastníky konference dostupná zdarma při vstupu.## KávaKáva bude dostupná ve vyhrazeném kávovém baru uvnitř a v kavárně venku primárně od značky [Café Reserva](https://www.cafereserva.cz/ \"Café Reserva\")."
},
{
"id": "ubytovani",
"name": "Ubytování",
"text": "K ubytování jsme pro vás vybrali několik možností v různých cenových kategoriích. ## Kempy a penziony (budget)- [Kemp Drusus](https://drusus.com/), K Řeporyjím 4, 155 00 Praha 13-Třebonice, cena za noc: chatka - 600 Kč, penzion - 900 Kč## Hostely- [Hostel Safestay](https://www.safestay.com/prague-charles-bridge \"Hostel Safestay\") Prague Charles Bridge, Ostrovní 131, 110 00 Nové Město## Hotely- [Hotel Vienna House Andel](https://www.viennahouse.com/andels-prague \"Hotel Vienna House Andel\"), Stroupežnického 3181/21, 150 00 Praha 5-Smíchov, cena za noc 3720 Kč- [Hotel IBIS Andel](https://all.accor.com/hotel/5211/index.en.shtml \"Hotel IBIS Andel\"), Plzeňská 14, 150 00 Praha 5-Smíchov- [Hotel Golf](https://www.hotel-golf.cz/ \"Hotel Golf\"), 215A, Plzeňská 103, Motol, 150 00 Praha 5, cena za noc 3600 KčDalší ubytování najdete na [Google Hotels](https://hotels.google.com/), [Airbnb](https://www.airbnb.com/), [Hotels.com](https://hotels.com/) nebo [Booking.com](https://booking.com/)."
}
],
"schedule": [
{
"id": "aq",
"date": "2022-06-04",
"stage": "rajska-zahrada",
"period": {
"start": "2022-06-04T07:00:00.000Z",
"end": "2022-06-04T07:30:00.000Z"
},
"event": "opening-ceremony"
},
{
"id": "cs",
"date": "2022-06-05",
"stage": "white-workshop-room",
"period": {
"start": "2022-06-05T14:00:00.000Z",
"end": "2022-06-05T15:30:00.000Z"
},
"event": "bezpecnost-workshop"
},
{
"id": "bi",
"date": "2022-06-04",
"stage": "rajska-zahrada",
"period": {
"start": "2022-06-04T07:30:00.000Z",
"end": "2022-06-04T08:30:00.000Z"
},
"event": "danove-triky-a-kouzla"
},
{
"id": "bb",
"date": "2022-06-04",
"stage": "lustrovy-sal",
"period": {
"start": "2022-06-04T07:30:00.000Z",
"end": "2022-06-04T08:30:00.000Z"
},
"event": "adopce-btc"
},
{
"id": "cy",
"date": "2022-06-05",
"stage": "knihovna",
"period": {
"start": "2022-06-05T10:30:00.000Z",
"end": "2022-06-05T11:30:00.000Z"
},
"event": "bleskomat-worskhop"
},
{
"id": "b3",
"date": "2022-06-04",
"stage": "klenbovy-sal",
"period": {
"start": "2022-06-04T07:30:00.000Z",
"end": "2022-06-04T08:00:00.000Z"
},
"event": "uvod-near"
},
{
"id": "ac",
"date": "2022-06-04",
"stage": "exit-room",
"period": {
"start": "2022-06-04T07:30:00.000Z",
"end": "2022-06-04T08:30:00.000Z"
},
"event": "defi-pro-zacatecniky"
},
{
"id": "d0",
"date": "2022-06-04",
"stage": "campfire-indoor",
"period": {
"start": "2022-06-04T16:30:00.000Z",
"end": "2022-06-04T17:00:00.000Z"
},
"event": "idealni-kryptoportfolio"
},
{
"id": "dk",
"date": "2022-06-04",
"stage": "campfire-indoor",
"period": {
"start": "2022-06-04T07:30:00.000Z",
"end": "2022-06-04T08:30:00.000Z"
},
"event": "bohemiandao-campfire"
}
]
},
"stats": {
"counts": {
"speakers": 10,
"tracks": 10,
"event-types": 7,
"events": 182,
"stages": 10,
"faqs": 6,
"partners": 48,
"projects": 72,
"practical-info": 3,
"schedule": 155
}
},
"time": "2022-07-14T03:29:30.958Z"
}

9
src/app.css Normal file
Zobrazit soubor

@ -0,0 +1,9 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.active {
@apply underline;
}
}

35
src/app.html Normal file
Zobrazit soubor

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/icons/favicon-32x32.png" />
<meta name="description" content="PRIVACY & SECURITY EDITION HACKATHON" />
<!-- Facebook Meta Tags -->
<meta property="og:url" content="https://ethbrno.pages.dev/">
<meta property="og:type" content="website">
<meta property="og:title" content="ETHBrno²">
<meta property="og:description" content="PRIVACY & SECURITY EDITION HACKATHON">
<meta property="og:image" content="https://ethbrno.pages.dev/ogbrno.png">
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:domain" content="ethbrno.pages.dev">
<meta property="twitter:url" content="https://ethbrno.pages.dev/">
<meta name="twitter:title" content="ETHBrno²">
<meta name="twitter:description" content="PRIVACY & SECURITY EDITION HACKATHON">
<meta name="twitter:image" content="https://ethbrno.pages.dev/ogbrno.png">
<!-- Plausible -->
<script defer data-domain="ethbrno.cz" src="https://x.gwei.cz/js/script.js"></script>
<meta name="viewport" content="width=device-width" />
%sveltekit.head%
</head>
<body>
<div>%sveltekit.body%</div>
</body>
</html>

34
src/lib/Footer.svelte Normal file
Zobrazit soubor

@ -0,0 +1,34 @@
<script>
import logo from '$lib/assets/logo_black.svg';
import cityscape from '$lib/assets/cityscape2.png';
</script>
<footer class="bg-black mx-auto">
<div class="pt-12">
<img src={cityscape} alt="cityscape" class="object-cover w-full" />
</div>
<div class="bg-white flex flex-col justify-end">
<div
class="container mx-auto px-4 flex flex-wrap flex-col sm:flex-row justify-center items-center h-60"
>
<a
href="https://twitter.com/ethbrno"
rel="noopener noreferrer"
class="text-black ml-1"
target="_blank"><img src={logo} class=" h-6" alt="logo" /></a
>
<span class="inline-flex sm:ml-auto sm:mt-0 mt-2 justify-center sm:justify-start">
<a class="text-black mr-10" href="https://twitter.com/ethbrno" rel="noopener noreferrer"
>Twitter
</a>
<a
class="ml-3 text-black"
href="https://matrix.to/#/#ethbrno:gwei.cz"
rel="noopener noreferrer"
>Chat
</a>
</span>
</div>
</div>
</footer>

89
src/lib/Navigation.svelte Normal file
Zobrazit soubor

@ -0,0 +1,89 @@
<script>
/**
* @type {boolean}
*/
export let open;
import logo from '$lib/assets/logo_black.svg';
import { page, session } from '$app/stores';
</script>
<nav class="flex flex-wrap items-center justify-between px-4 bg-white mx-auto sticky top-0 z-50">
<div class="container mx-auto flex flex-wrap items-center justify-between">
<div class="w-full relative flex justify-between lg:w-auto lg:static lg:block lg:justify-start">
<a
class="text-sm leading-relaxed inline-block mr-4 p-4 whitespace-nowrap uppercase underline"
href="/"
>
<img src={logo} alt="logo" class="w-[145px] h-[54px] p-2 -ml-3" />
</a>
<button
class="text-black cursor-pointer text-xl leading-none px-3 py-1 border border-solid border-transparent rounded bg-transparent block lg:hidden outline-none focus:outline-none"
type="button"
on:click={() => open = !open}
>
</button>
</div>
<div class="{open ? 'lg:flex flex-grow items-center flex' : 'lg:flex flex-grow items-center hidden'}" id="navbar">
<ul
class="flex flex-col lg:flex-row lg:flex-grow-0 lg:mt-0 list-none lg:ml-auto text-base flex-grow my-8 lg:my-0"
>
<li>
<a
href="/"
class="p-5 flex items-center uppercase font-bold leading-snug text-black hover:opacity-75 hover:underline" class:active={$page.url.pathname === '/'}
>Home</a
>
</li>
<li>
<a
href="/manual"
class="p-5 flex items-center uppercase font-bold leading-snug text-black hover:opacity-75 hover:underline hidden"
>Hacker Manual</a
>
</li>
<li>
<a
href="/schedule"
class="p-5 flex items-center uppercase font-bold leading-snug text-black hover:opacity-75 hover:underline hidden"
>Schedule</a
>
</li>
<li>
<a
href="/venues"
class="p-5 flex items-center uppercase font-bold leading-snug text-black hover:opacity-75 hover:underline"
class:active={$page.url.pathname === '/venues'}
>Venues</a
>
</li>
<li>
<a
href="/contributors"
class="p-5 flex items-center uppercase font-bold leading-snug text-black hover:opacity-75 hover:underline"
class:active={$page.url.pathname === '/contributors' || $page.url.pathname === '/team'}
>Contributors</a
>
</li>
<li>
<a
href="https://matrix.to/#/#ethbrno:gwei.cz"
rel="noopener noreferrer"
class="p-5 flex items-center uppercase font-bold leading-snug text-black hover:opacity-75 hover:underline"
>Chat</a
>
</li>
<li>
<a
href="https://join.ethbrno.cz"
rel="noopener noreferrer"
target="_blank"
class="p-5 flex items-center bg-black text-white uppercase font-bold leading-snug hover:opacity-75 hover:underline"
>Join</a
>
</li>
</ul>
</div>
</div>
</nav>

binární
src/lib/assets/cityscape2.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 75 KiB

Rozdílový obsah nebyl zobrazen, protože některé řádky jsou příliš dlouhá

Za

Šířka:  |  Výška:  |  Velikost: 6.4 KiB

11
src/routes/+layout.js Normal file
Zobrazit soubor

@ -0,0 +1,11 @@
/** @type {import('./$types').PageLoad} */
export async function load({fetch}) {
const { spec } = await fetch('https://spec.utxo.cz/22/bundle.json').then((r) => r.json());
//const { spec } = await fetch('/api/datafetch').then((r) => r.json());
console.log(spec);
return {
data: spec
};
}

Zobrazit soubor

@ -0,0 +1,9 @@
<script>
import '../app.css';
import Navigation from '$lib/Navigation.svelte';
import Footer from '$lib/Footer.svelte';
</script>
<Navigation open={false} />
<slot />
<Footer />

125
src/routes/+page.svelte Normal file
Zobrazit soubor

@ -0,0 +1,125 @@
<svelte:head>
<title>ETHBrno²</title>
</svelte:head>
<section class="text-gray-400 bg-black">
<div class="w-full mx-auto flex md:flex-row md:h-5/6 flex-col items-center">
<div
class="lg:max-w-lg lg:w-full md:w-1/2 md:mb-0 mb-10 md:flex hidden justify-center h-[700px]"
>
<svg class="block w-full">
<filter id="pixelate" x="0" y="0">
<feFlood x="4" y="4" height="2" width="2" />
<feComposite width="2" height="2" />
<feTile result="a" />
<feComposite in="SourceGraphic" in2="a" operator="in" />
<feMorphology operator="erode" id="morph" radius="5" />
</filter>
<animate
xlink:href="#morph"
id="anim-dialiate"
attributeName="radius"
values="0;10;0"
dur="5s"
fill="freeze"
repeatCount="indefinite"
/>
<image
filter="url(#pixelate)"
xlink:href="cam2.png"
width="100%"
height="100%"
preserveAspectRatio="xMidYMid slice"
/>
</svg>
</div>
<div
class="lg:flex-grow md:w-1/2 lg:pl-32 md:pl-16 pt-4 flex flex-col md:items-start md:text-left items-center text-center text-white transition-transform"
>
<img src="logo.svg" class="md:-ml-4 p-2 md:p-0 w-[343px] h-[127px]" alt="logo" />
<p class="text-3xl my-2">privacy {`&`} security edition</p>
<p class="text-xl">NOVEMBER 11-13, 2022</p>
<p class="text-xl">Brno, Czech republic</p>
<div class="h-[1px] bg-white w-full my-2 opacity-20" />
<p class="mb-8 py-4 leading-relaxed opacity-50 text-lg font-light">
#freedom #anonymity #non-kyc #encryption #selfsovereignty #p2p #opensource #web3
#smartcontracts #audits #vulnerabilities #analytics #wallets #scams #darkforest #mev
#zeroknowledgeproofs
</p>
</div>
</div>
</section>
<section class="text-gray-600 bg-white body-font">
<div class="container mx-auto flex px-5 py-24 md:flex-row flex-col items-center">
<div
class="lg:flex-grow md:w-1/2 lg:pl-32 md:pl-16 lg:pr-32 md:pr-16 flex flex-col md:items-start md:text-left mb-16 md:mb-0 items-center text-center"
>
<h1 class="md:text-5xl text-3xl font-bold mb-4 text-black">About</h1>
<p class="mb-8 leading-relaxed">
ETHBrno² is an annual independent {`&`} open community hackathon (former conference) for supporters
of decentralised finance, smart contracts and Web3 happening in Brno, Czech Republic. ETHBrno²
is the second, and we believe the best yet, edition.
</p>
<p class="mb-8 leading-relaxed">
ETHBrno² events are organized by Gwei.cz community with the help of the UTXO Foundation.
</p>
<p class="mb-8 leading-relaxed">This year we are focusing on privacy and security topics.</p>
<div class="flex justify-center">
<a
href="https://join.ethbrno.cz/"
class="inline-flex text-white bg-black border-0 py-2 px-6 focus:outline-none hover:bg-black text-lg"
>Apply To Hack</a
>
<a
href="https://ethbrno.cz/sponsor-deck.pdf"
target="_blank"
rel="noopener noreferrer"
class="ml-4 inline-flex text-black bg-white border-0 py-2 px-6 focus:outline-none hover:bg-gray-200 text-lg underline"
>Sponsor</a
>
</div>
</div>
<div class="lg:max-w-lg lg:w-full md:w-1/2 w-5/6">
<img class="object-cover object-center" alt="hero" src="key.png" />
</div>
</div>
</section>
<section class="text-gray-400 bg-black body-font">
<div class="container mx-auto flex px-5 py-24 md:flex-row flex-col items-center">
<div class="lg:max-w-lg lg:w-full md:w-1/2 w-5/6 md:mb-0 mb-10 flex justify-center">
<img class="object-cover object-center" alt="hero" src="lock.png" />
</div>
<div
class="lg:flex-grow md:w-1/2 lg:pl-32 md:pl-16 lg:pr-32 md:pr-16 flex flex-col md:items-start md:text-left items-center text-center"
>
<h1 class="md:text-5xl text-3xl mb-4 font-bold text-white">Manifesto</h1>
<p class="mb-4 leading-relaxed">
We believe that privacy is a fundamental human right. And good privacy needs good security
foundations. Especially today, in a digital age full of people, organizations or governments
that want to control you, your money or your data. Therefore, the second edition of ETHBrno
(ETHBrno²) will be mainly dedicated to these important topics ― privacy & security.
</p>
<p class="mb-4 leading-relaxed">
Our hackathon is for everyone who understands the urgency of these issues and wants to help.
We want to present the current progress in this sector as well as the projects, technologies
and people involved. We are Ethereum people, but we welcome creators and fans of all
blockchains and directions.
</p>
<p class="mb-4 leading-relaxed">
Let's learn together to defend against all threats, whether it's loss of privacy and state
oppression, smart-contract exploits or simple phishing scams. Let's learn how to analyse
them retrospectively. Let's learn how to use the right tools, and if we don't have them,
let's create them together.
</p>
<p class="leading-relaxed">Don't Trust. Verify. - Run a node - Protect privacy</p>
</div>
</div>
</section>

Zobrazit soubor

@ -0,0 +1,7 @@
/** @type {import('./$types').PageLoad} */
export async function load({ parent }) {
const { data: { speakers } } = await parent();
//console.log(speakers);
return speakers;
}

Zobrazit soubor

@ -0,0 +1,30 @@
<svelte:head>
<title>Contributors: ETHBrno²</title>
</svelte:head>
<script>
/** @type {import('./$types').PageData} */
export let data;
//console.log(data);
</script>
<section class="text-gray-400 body-font bg-black">
<div class=" px-5 py-24 mx-auto">
<div class="flex flex-col text-center w-full mb-20">
<h1 class="sm:text-4xl text-3xl font-medium title-font mb-2 text-white">Speakers</h1>
<p class="lg:w-2/3 mx-auto leading-relaxed text-base">
We are here to inspire and help your project succeed.
</p>
<div class="flex mx-auto border-2 border-black overflow-hidden mt-6 bg-black">
<a class="py-1 px-4 text-white focus:outline-none" href="/contributors">Speakers</a>
<a class="py-1 px-4 bg-black hover:bg-black text-gray-300 focus:outline-none" href="/team"
>Team</a
>
</div>
</div>
<div class="flex flex-wrap -m-4">
{#each Object.values(data) as item}
{#if item.name !== undefined}<li>{item.name}</li>{/if}
{/each}
</div>
</div>
</section>

4
src/routes/team/+page.js Normal file
Zobrazit soubor

@ -0,0 +1,4 @@
/** @type {import('./$types').PageLoad} */
export async function load() {
return {};
};

Zobrazit soubor

@ -0,0 +1,5 @@
<script>
/** @type {import('./$types').PageData} */
//export let data;
</script>
<h1>yo dudes</h1>

Zobrazit soubor

@ -0,0 +1,247 @@
<svelte:head>
<title>Venues: ETHBrno²</title>
</svelte:head>
<section class="text-gray-400 bg-black body-font">
<div class="container mx-auto flex px-5 py-24 md:flex-row flex-col items-center">
<div
class="lg:flex-grow md:w-1/2 lg:pr-24 md:pr-16 flex flex-col md:items-start md:text-left mb-16 md:mb-0 items-center text-center"
>
<h1 class="title-font sm:text-4xl text-3xl mb-4 font-medium text-white">
<a href="https://www.hubbrno.cz/en/" class="hover:underline"> Impact Hub Brno </a>
</h1>
<p class="leading-relaxed text-white">Opening hours:</p>
<p class="leading-relaxed mb-5 text-white">Fri Nov 11 13:00 - Sun Nov 13 20:00 (nonstop!)</p>
<div class="leading-relaxed relative mb-4">
The main venue will be a modern coworking space called Impact Hub, just a few minutes walk
from the city centre and the main train station. In less than 7 years of its existence, it
has become an important part of Brno's freelancing community, inspiring and connecting many
people. Great place for our hackathon, don't you think?
</div>
<div class="leading-relaxed relative mb-4">
Impact Hub will serve as the main basecamp for the hackathon and will be available for
hackers all day 24/7.
</div>
<div class="leading-relaxed relative mb-4">
You'll have everything you might need - different work areas (single or team, sitting or
standing), fast internet, power sockets everywhere, meeting rooms, refreshments and much
more. We want you to feel as comfortable as possible and we will do everything we can to
make that happen.
</div>
<div class="flex justify-center">
<a
href="https://goo.gl/maps/wutjvk8jCFuDcvSG6"
class="inline-flex text-white bg-gray-500 border-0 py-2 px-6 focus:outline-none hover:bg-gray-600 text-lg"
>
Navigate
</a>
</div>
</div>
<div class="lg:max-w-lg lg:w-full md:w-1/2 w-5/6">
<picture>
<source srcSet="/venues/ih1.avif" type="image/avif" />
<source srcSet="/venues/ih1.jpg" type="image/jpeg" />
<img
class="object-cover object-center grayscale hover:grayscale-0"
decoding="async"
loading="lazy"
src="/venues/ih1.jpg"
alt="venue"
/>
</picture>
</div>
</div>
</section>
<section class="text-gray-400 body-font bg-black">
<div class="container px-5 pb-12 mx-auto">
<div class="flex flex-wrap -m-4">
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/ih2.avif" type="image/avif" />
<source srcSet="/venues/ih2.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/ih2.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">ENTRY</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">nevim</h2>
</div>
</div>
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/ih3.avif" type="image/avif" />
<source srcSet="/venues/ih3.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/ih3.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">ROOM</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">nevim</h2>
</div>
</div>
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/ih4.avif" type="image/avif" />
<source srcSet="/venues/ih4.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/ih4.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">CONFERENCE</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">nevim</h2>
</div>
</div>
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/ih5.avif" type="image/avif" />
<source srcSet="/venues/ih5.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/ih5.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">TERRACE</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">něco</h2>
</div>
</div>
</div>
</div>
</section>
<section class="text-gray-400 bg-black body-font">
<div class="container mx-auto flex px-5 py-24 md:flex-row flex-col items-center">
<div class="lg:max-w-lg lg:w-full md:w-1/2 w-5/6 md:mb-0 mb-10">
<picture>
<source srcSet="/venues/cc1.avif" type="image/avif" />
<source srcSet="/venues/cc1.jpg" type="image/jpeg" />
<img
class="object-cover object-center grayscale hover:grayscale-0"
decoding="async"
loading="lazy"
src="/venues/cc1.jpg"
alt="venue"
/>
</picture>
</div>
<div
class="lg:flex-grow md:w-1/2 lg:pl-24 md:pl-16 flex flex-col md:items-start md:text-left items-center text-center"
>
<h1 class="title-font sm:text-4xl text-3xl mb-4 font-medium text-white">Clubco Brno</h1>
<p class="leading-relaxed text-white">Opening hours:</p>
<p class="leading-relaxed mb-5 text-white">
Fri Nov 11: 14:30 - 22:00, Sat Nov 10: 9:00 - 22:00, Sun Nov 13: 9:00 - 17:00
</p>
<p class="relative mb-4">
Additional venue, only 5 minutes walk (400m) from the main venue (Impact Hub).
</p>
{' '}
<p class="relative mb-4">
It will be an additional space for hackers that offers another style, with private meeting
rooms and open workspaces. It also includes an event space where additional workshops and
lectures will be held.
</p>
<div class="relative mb-4">
This location will NOT be open 24/7, you will need to move to the Impact Hub for the night.
</div>
<div class="flex justify-center">
<a
href="https://g.page/clubco-brno?share"
class="inline-flex text-white bg-gray-500 border-0 py-2 px-6 focus:outline-none hover:bg-gray-600 text-lg"
>
Navigate
</a>
</div>
</div>
</div>
</section>
<section class="text-gray-400 body-font bg-black">
<div class="container px-5 pb-12 mx-auto">
<div class="flex flex-wrap -m-4">
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/cc2.avif" type="image/avif" />
<source srcSet="/venues/cc2.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/cc2.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">ENTRY</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">nevim</h2>
</div>
</div>
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/cc3.avif" type="image/avif" />
<source srcSet="/venues/cc3.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/cc3.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">ROOM</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">nevim</h2>
</div>
</div>
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/cc4.avif" type="image/avif" />
<source srcSet="/venues/cc4.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/cc4.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">CONFERENCE</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">nevim</h2>
</div>
</div>
<div class="xl:w-1/4 md:w-1/2 w-full p-4">
<div class="bg-gray-800 bg-opacity-40 p-6">
<picture>
<source srcSet="/venues/cc5.avif" type="image/avif" />
<source srcSet="/venues/cc5.jpg" type="image/jpeg" />
<img
decoding="async"
loading="lazy"
class="h-40 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
src="/venues/cc5.jpg"
alt="venue"
/>
</picture>
<h3 class="tracking-widest text-gray-400 text-xs font-medium title-font">WORKING</h3>
<h2 class="text-lg text-white font-medium title-font mb-4">něco</h2>
</div>
</div>
</div>
</div>
</section>

binární
static/cam2.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 57 KiB

binární
static/cityscape.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 56 KiB

16
static/duotone.svg Normal file
Zobrazit soubor

@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg">
<filter id="duotone_peachypink">
<feColorMatrix type="matrix" result="grayscale"
values="1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
0 0 0 1 0" >
</feColorMatrix>
<feComponentTransfer color-interpolation-filters="sRGB" result="duotone">
<feFuncR type="table" tableValues="0.7411764706 0.9882352941"></feFuncR>
<feFuncG type="table" tableValues="0.0431372549 0.7333333333"></feFuncG>
<feFuncB type="table" tableValues="0.568627451 0.05098039216"></feFuncB>
<feFuncA type="table" tableValues="0 1"></feFuncA>
</feComponentTransfer>
</filter>
</svg>

Za

Šířka:  |  Výška:  |  Velikost: 704 B

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 4.3 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 15 KiB

binární
static/icons/apple-touch-icon.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 3.8 KiB

binární
static/icons/favicon-16x16.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 337 B

binární
static/icons/favicon-32x32.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 598 B

binární
static/icons/favicon.ico Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 15 KiB

Zobrazit soubor

@ -0,0 +1,19 @@
{
"name": "ETH Brno volume 2",
"short_name": "ETHBrno",
"icons": [
{
"src": "/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#000",
"background_color": "#000",
"display": "standalone"
}

binární
static/key.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 20 KiB

binární
static/lock.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 12 KiB

7
static/logo.svg Normal file

Rozdílový obsah nebyl zobrazen, protože některé řádky jsou příliš dlouhá

Za

Šířka:  |  Výška:  |  Velikost: 6.4 KiB

binární
static/logo3.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 118 KiB

binární
static/logo_key.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 4.9 KiB

7
static/logo_key.svg Normal file
Zobrazit soubor

@ -0,0 +1,7 @@
<svg width="516" height="401" viewBox="0 0 516 401" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="85.7948" cy="85.7948" r="70.5424" stroke="white" stroke-width="30.5048"/>
<path d="M183.029 304.914V280.114H100.138V239.116H210.458V213.534H68.6355V280.114V304.914V376.187H210.793V350.828H100.138V304.914H183.029Z" fill="white"/>
<path d="M377.581 239.116V213.534L244.544 213.534V239.116L295.92 239.116V377.186H327.423V239.116H377.581Z" fill="white"/>
<path d="M516 378.867V216.215H484.944V282.907H438.919V216.215H407.751V378.867H438.919V308.377H484.944V378.867H516Z" fill="white"/>
<rect x="68.6355" y="152.524" width="30.5048" height="247.852" fill="white"/>
</svg>

Za

Šířka:  |  Výška:  |  Velikost: 679 B

binární
static/ogbrno.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 84 KiB

1
static/user.svg Normal file
Zobrazit soubor

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>

Za

Šířka:  |  Výška:  |  Velikost: 313 B

binární
static/venues/cc1.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/cc1.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 487 KiB

binární
static/venues/cc2.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/cc2.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 772 KiB

binární
static/venues/cc3.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/cc3.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 530 KiB

binární
static/venues/cc4.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/cc4.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 628 KiB

binární
static/venues/cc5.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih1.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih1.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 161 KiB

binární
static/venues/ih2.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih2.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 287 KiB

binární
static/venues/ih3.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih3.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 157 KiB

binární
static/venues/ih4.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih4.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 102 KiB

binární
static/venues/ih5.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih5.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 101 KiB

binární
static/venues/ih6.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih6.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 125 KiB

binární
static/venues/ih7.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/ih7.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 107 KiB

16
svelte.config.js Normal file
Zobrazit soubor

@ -0,0 +1,16 @@
import adapter from '@sveltejs/adapter-auto';
import preprocess from "svelte-preprocess";
/** @type {import('@sveltejs/kit').Config} */
const config = {
kit: {
adapter: adapter()
},
preprocess: [
preprocess({
postcss: true,
}),
],
};
export default config;

8
tailwind.config.cjs Normal file
Zobrazit soubor

@ -0,0 +1,8 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./src/**/*.{html,js,svelte,ts}'],
theme: {
extend: {},
},
plugins: [],
}

6
tests/test.js Normal file
Zobrazit soubor

@ -0,0 +1,6 @@
import { expect, test } from '@playwright/test';
test('index page has expected h1', async ({ page }) => {
await page.goto('/');
expect(await page.textContent('h1')).toBe('Welcome to SvelteKit');
});

7
vite.config.js Normal file
Zobrazit soubor

@ -0,0 +1,7 @@
import { sveltekit } from '@sveltejs/kit/vite';
const config = {
plugins: [sveltekit()]
};
export default config;