Compare commits

...

18 commits

Author SHA1 Message Date
Sebin Nyshkim
15d487ec6f chore: bump version number 2024-09-03 14:41:04 +02:00
Sebin Nyshkim
d716e192bb build: update packages 2024-09-03 14:41:04 +02:00
Sebin Nyshkim
6aa34c1648 build: update scaffolding to current create-vue template 2024-09-03 14:40:57 +02:00
Sebin Nyshkim
34823665c6 chore: bump version number 2023-11-30 23:18:28 +01:00
Sebin Nyshkim
134e2c79cc fix: wrong order of v-if evaluation 2023-11-30 23:17:49 +01:00
Sebin Nyshkim
b0abfd8311 chore: bump version number 2023-11-30 22:55:32 +01:00
Sebin Nyshkim
61cd15fd5b build: update npm packages 2023-11-30 22:55:05 +01:00
Sebin Nyshkim
f3f94be6ae build: update browserslist definitions 2023-11-30 22:54:18 +01:00
Sebin Nyshkim
61147be693 build: update browserslist definition file 2023-11-30 22:53:41 +01:00
Sebin Nyshkim
6a1474eb52 build: update npm packages 2023-10-19 01:54:10 +02:00
Sebin Nyshkim
f4b1003801 chore: bump version number 2023-09-01 13:13:07 +02:00
Sebin Nyshkim
5d94323bdd feat: update overdrive ref image to new border style 2023-09-01 13:12:30 +02:00
Sebin Nyshkim
d2774e8150 refactor: update vite-imagetools asset link directives
Starting with v5 vite-imagetools has removed shorthands
2023-09-01 13:06:40 +02:00
Sebin Nyshkim
89831a64a2 build: add package.json to list of includes 2023-09-01 13:04:08 +02:00
Sebin Nyshkim
4c8d576f13 build: migrate autoprefixer from CJS require to ES module import 2023-09-01 12:30:33 +02:00
Sebin Nyshkim
0c8a3b0348 build: update scaffolding to current create-vue template 2023-09-01 12:29:06 +02:00
Sebin Nyshkim
0335006ee5 build: update packages to latest versions 2023-09-01 12:28:40 +02:00
Sebin Nyshkim
07bd197c29 refactor: add types for emits 2023-09-01 12:11:51 +02:00
21 changed files with 1779 additions and 2528 deletions

View file

@ -1,2 +1,3 @@
defaults
>1% and not dead
last 2 versions last 2 versions
not dead

2
.gitignore vendored
View file

@ -26,3 +26,5 @@ coverage
*.njsproj *.njsproj
*.sln *.sln
*.sw? *.sw?
*.tsbuildinfo

View file

@ -1,3 +1,7 @@
{ {
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] "recommendations": [
"Vue.volar",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
]
} }

3826
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,36 +1,38 @@
{ {
"name": "sebin-reference", "name": "sebin-reference",
"version": "0.10.4", "version": "0.10.7",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite --host",
"build": "run-p type-check build-only", "build": "run-p type-check \"build-only {@}\" --",
"preview": "vite preview", "preview": "vite preview",
"build-only": "vite build", "build-only": "vite build",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --build --force",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
"format": "prettier --write src/"
}, },
"dependencies": { "dependencies": {
"vue": "^3.2.45", "vue": "^3.4.38",
"vue-router": "^4.2.4" "vue-router": "^4.4.3"
}, },
"devDependencies": { "devDependencies": {
"@rushstack/eslint-patch": "^1.3.2", "@rushstack/eslint-patch": "^1.10.4",
"@types/node": "^18.16.19", "@tsconfig/node20": "^20.1.4",
"@vitejs/plugin-vue": "^4.2.3", "@types/node": "^20.16.3",
"@vue/eslint-config-prettier": "^7.1.0", "@vitejs/plugin-vue": "^5.1.3",
"@vue/eslint-config-typescript": "^11.0.3", "@vue/eslint-config-prettier": "^9.0.0",
"@vue/tsconfig": "^0.1.3", "@vue/eslint-config-typescript": "^13.0.0",
"autoprefixer": "^10.4.14", "@vue/tsconfig": "^0.5.1",
"eslint": "^8.45.0", "autoprefixer": "^10.4.20",
"eslint-plugin-vue": "^9.15.1", "eslint": "^8.57.0",
"eslint-plugin-vue": "^9.28.0",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"npm-run-all": "^4.1.5", "npm-run-all2": "^6.2.2",
"prettier": "^2.8.8", "prettier": "^3.3.3",
"sass": "^1.64.0", "sass": "^1.77.8",
"typescript": "^4.9.5", "typescript": "~5.5.0",
"vite": "^4.4.6", "vite": "^5.4.2",
"vite-imagetools": "^4.0.19", "vite-imagetools": "^6.2.9",
"vue-tsc": "^1.8.5" "vue-tsc": "^2.1.4"
} }
} }

View file

@ -62,21 +62,21 @@ provide(showModalKey, showModal)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/sebin-smug-icon.png?w=36;40;48;56;72;80;96;112;108;120;144;168&avif&quality=75&srcset @/assets/sebin-smug-icon.png?w=36;40;48;56;72;80;96;112;108;120;144;168&format=avif&quality=75&as=srcset
" "
sizes="(min-width: 120em) 56px, (min-width: 80em) 48px, (min-width: 35em) 40px, 36px" sizes="(min-width: 120em) 56px, (min-width: 80em) 48px, (min-width: 35em) 40px, 36px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/sebin-smug-icon.png?w=36;40;48;56;72;80;96;112;108;120;144;168&webp&quality=100&srcset @/assets/sebin-smug-icon.png?w=36;40;48;56;72;80;96;112;108;120;144;168&format=webp&quality=100&as=srcset
" "
sizes="(min-width: 120em) 56px, (min-width: 80em) 48px, (min-width: 35em) 40px, 36px" sizes="(min-width: 120em) 56px, (min-width: 80em) 48px, (min-width: 35em) 40px, 36px"
type="image/webp" type="image/webp"
/> />
<img <img
class="nav-logo" class="nav-logo"
srcset="@/assets/sebin-smug-icon.png?w=36;40;48;56;72;80;96;112;108;120;144;168&png&srcset" srcset="@/assets/sebin-smug-icon.png?w=36;40;48;56;72;80;96;112;108;120;144;168&format=png&as=srcset"
sizes="(min-width: 120em) 56px, (min-width: 80em) 48px, (min-width: 35em) 40px, 36px" sizes="(min-width: 120em) 56px, (min-width: 80em) 48px, (min-width: 35em) 40px, 36px"
alt="Sebin Avatar" alt="Sebin Avatar"
/> />

View file

@ -1,16 +1,19 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed } from 'vue' import { computed } from 'vue'
import { Ratings } from '@/interfaces'
interface Props { interface Props {
modelValue: number[] modelValue: number[]
id: string
name?: string name?: string
kind: string value: Ratings
value: number }
interface Emits {
(e: 'update:modelValue', value: number[]): void
} }
const props = defineProps<Props>() const props = defineProps<Props>()
const emit = defineEmits(['update:modelValue']) const emit = defineEmits<Emits>()
const checked = computed({ const checked = computed({
get() { get() {
@ -28,12 +31,16 @@ const checked = computed({
class="filter-button__input" class="filter-button__input"
type="checkbox" type="checkbox"
:name="name" :name="name"
:id="id" :id="Ratings[value].toLowerCase()"
:value="value" :value="value"
v-model="checked" v-model="checked"
/> />
<label :for="id" class="filter-button__label" :class="[kind]"> <label
<slot></slot> :for="Ratings[value].toLowerCase()"
class="filter-button__label"
:class="[Ratings[value].toLowerCase()]"
>
{{ Ratings[value] }}
</label> </label>
</div> </div>
</template> </template>

View file

@ -1,14 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
interface Props { interface Props {
type?: string type: string
} }
defineProps<Props>() defineProps<Props>()
</script> </script>
<template> <template>
<span class="filter-list__tag" :class="type"> <span class="filter-list__tag" :class="type.toLowerCase()">
<slot></slot> <span>{{ type }}</span>
</span> </span>
</template> </template>

View file

@ -1,5 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
import { Ratings, Role } from '@/interfaces'
import type { Kink } from '@/interfaces' import type { Kink } from '@/interfaces'
import FilterButton from '@/components/FilterButton.vue' import FilterButton from '@/components/FilterButton.vue'
import FilterListTag from '@/components/FilterListTag.vue' import FilterListTag from '@/components/FilterListTag.vue'
@ -17,36 +18,15 @@ const filteredItems = computed(() =>
.sort((a, b) => a.rating - b.rating) .sort((a, b) => a.rating - b.rating)
.filter((kink) => filterOptions.value.some((filterNum) => kink.rating === filterNum)) .filter((kink) => filterOptions.value.some((filterNum) => kink.rating === filterNum))
) )
const toLabel = (rating: number) => {
switch (rating) {
case 1:
return 'Love'
case 2:
return 'Yes'
case 3:
return 'Maybe'
case 4:
return 'No'
}
}
</script> </script>
<template> <template>
<div class="filter-list"> <div class="filter-list">
<div class="filter-list__filters"> <div class="filter-list__filters">
<FilterButton name="rating" id="love" kind="love" :value="1" v-model="filterOptions"> <FilterButton name="rating" :value="Ratings.Love" v-model="filterOptions" />
Love <FilterButton name="rating" :value="Ratings.Yes" v-model="filterOptions" />
</FilterButton> <FilterButton name="rating" :value="Ratings.Maybe" v-model="filterOptions" />
<FilterButton name="rating" id="yes" kind="yes" :value="2" v-model="filterOptions"> <FilterButton name="rating" :value="Ratings.No" v-model="filterOptions" />
Yes
</FilterButton>
<FilterButton name="rating" id="maybe" kind="maybe" :value="3" v-model="filterOptions">
Maybe
</FilterButton>
<FilterButton name="rating" id="no" kind="no" :value="4" v-model="filterOptions">
No
</FilterButton>
</div> </div>
<div class="filter-list__list-container"> <div class="filter-list__list-container">
@ -56,22 +36,19 @@ const toLabel = (rating: number) => {
<FilterListTag <FilterListTag
v-if="filterOptions.length > 1" v-if="filterOptions.length > 1"
class="category" class="category"
:type="toLabel(item.rating)?.toLowerCase()" :type="Ratings[item.rating]"
> />
<span>{{ toLabel(item.rating) }}</span>
</FilterListTag>
<span class="filter-list__item-name"> <span class="filter-list__item-name">
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</span> </span>
<FilterListTag
<FilterListTag type="receive"> v-if="((item.role ?? 0) & Role.Receive) === Role.Receive"
<span v-if="item.receive">receive</span> :type="Role[Role.Receive]"
</FilterListTag> />
<FilterListTag
<FilterListTag type="give"> v-if="((item.role ?? 0) & Role.Give) === Role.Give"
<span v-if="item.give">give</span> :type="Role[Role.Give]"
</FilterListTag> />
</li> </li>
</ul> </ul>
</template> </template>

View file

@ -7,8 +7,12 @@ interface Props {
name?: string name?: string
} }
interface Emits {
(e: 'update:modelValue', value: boolean): void
}
const props = defineProps<Props>() const props = defineProps<Props>()
const emit = defineEmits(['update:modelValue']) const emit = defineEmits<Emits>()
const checked = computed({ const checked = computed({
get() { get() {

View file

@ -5,21 +5,21 @@
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/sebin-smug-icon.png?w=180;200;240;280;350;400;480;0&avif&quality=75&withoutEnlargement&srcset @/assets/sebin-smug-icon.png?w=180;200;240;280;350;400;480;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 280px, (min-width: 80em) 240px, (min-width: 35em) 200px, 180px" sizes="(min-width: 120em) 280px, (min-width: 80em) 240px, (min-width: 35em) 200px, 180px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/sebin-smug-icon.png?w=180;200;240;280;350;400;480;0&webp&quality=100&withoutEnlargement&srcset @/assets/sebin-smug-icon.png?w=180;200;240;280;350;400;480;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 280px, (min-width: 80em) 240px, (min-width: 35em) 200px, 180px" sizes="(min-width: 120em) 280px, (min-width: 80em) 240px, (min-width: 35em) 200px, 180px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/sebin-smug-icon.png?w=180;200;240;280;350;400;480;0&png&withoutEnlargement&srcset @/assets/sebin-smug-icon.png?w=180;200;240;280;350;400;480;0&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 280px, (min-width: 80em) 240px, (min-width: 35em) 200px, 180px" sizes="(min-width: 120em) 280px, (min-width: 80em) 240px, (min-width: 35em) 200px, 180px"
alt="Sebin Avatar" alt="Sebin Avatar"

View file

@ -6,8 +6,20 @@ interface ColorDict {
interface Kink { interface Kink {
name: string name: string
rating: number rating: number
receive?: boolean role?: Role
give?: boolean }
export enum Ratings {
Love,
Yes,
Maybe,
No
}
export enum Role {
Give = 1,
Receive = 2,
Both = Give | Receive
} }
export type { ColorDict, Kink } export type { ColorDict, Kink }

View file

@ -1,3 +1,5 @@
import { Ratings, Role } from '@/interfaces'
export const firstName = 'Sebin', export const firstName = 'Sebin',
middleName = 'Antario', middleName = 'Antario',
lastName = 'Nyshkim', lastName = 'Nyshkim',
@ -31,50 +33,50 @@ export const firstName = 'Sebin',
girth: 5 // cm girth: 5 // cm
}, },
kinks = [ kinks = [
{ name: 'Absorption', rating: 4 }, { name: 'Absorption', rating: Ratings.No },
{ name: 'Anal', rating: 1, recive: true, give: true }, { name: 'Anal', rating: Ratings.Love, role: Role.Both },
{ name: 'Auto-Fellatio', rating: 2 }, { name: 'Auto-Fellatio', rating: Ratings.Yes },
{ name: 'Biting', rating: 2, receive: true, give: true }, { name: 'Biting', rating: Ratings.Yes, role: Role.Both },
{ name: 'Bukkake', rating: 2, receive: false, give: true }, { name: 'Bukkake', rating: Ratings.Yes, role: Role.Give },
{ name: 'Chastity', rating: 4 }, { name: 'Chastity', rating: Ratings.No },
{ name: 'Chubby', rating: 3 }, { name: 'Chubby', rating: Ratings.Maybe },
{ name: 'Clothed Sex', rating: 2 }, { name: 'Clothed Sex', rating: Ratings.Yes },
{ name: 'Cock Slapping', rating: 2, receive: false, give: true }, { name: 'Cock Slapping', rating: Ratings.Yes, role: Role.Give },
{ name: 'Coiling', rating: 3, receive: false, give: true }, { name: 'Coiling', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Competition', rating: 3, receive: false, give: true }, { name: 'Competition', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Creampie', rating: 2, receive: false, give: true }, { name: 'Creampie', rating: Ratings.Yes, role: Role.Give },
{ name: 'Crushing (Living/Objects)', rating: 4 }, { name: 'Crushing (Living/Objects)', rating: Ratings.No },
{ name: 'Cum From Mouth/Nose', rating: 2, receive: false, give: true }, { name: 'Cum From Mouth/Nose', rating: Ratings.Yes, role: Role.Give },
{ name: 'Cum Inflation (Light/Medium)', rating: 2 }, { name: 'Cum Inflation (Light/Medium)', rating: Ratings.Yes },
{ name: 'Deep-throat', rating: 2, receive: true, give: false }, { name: 'Deep-throat', rating: Ratings.Yes, role: Role.Receive },
{ name: 'Dirty Talking', rating: 2 }, { name: 'Dirty Talking', rating: Ratings.Yes },
{ name: 'Excessive Cum', rating: 1, receive: true, give: true }, { name: 'Excessive Cum', rating: Ratings.Love, role: Role.Both },
{ name: 'Face-Fucking', rating: 2, receive: false, give: true }, { name: 'Face-Fucking', rating: Ratings.Yes, role: Role.Give },
{ name: 'Facial', rating: 2, receive: false, give: true }, { name: 'Facial', rating: Ratings.Yes, role: Role.Give },
{ name: 'Feet', rating: 4 }, { name: 'Feet', rating: Ratings.No },
{ name: 'Filled Condoms', rating: 2 }, { name: 'Filled Condoms', rating: Ratings.Yes },
{ name: 'Foreplay', rating: 2, receive: true, give: true }, { name: 'Foreplay', rating: Ratings.Yes, role: Role.Both },
{ name: 'Frotting', rating: 2 }, { name: 'Frotting', rating: Ratings.Yes },
{ name: 'Gangbangs', rating: 2 }, { name: 'Gangbangs', rating: Ratings.Yes },
{ name: 'Growth', rating: 1, receive: true, give: false }, { name: 'Growth', rating: Ratings.Love, role: Role.Receive },
{ name: 'Handjobs', rating: 2, receive: true, give: true }, { name: 'Handjobs', rating: Ratings.Yes, role: Role.Both },
{ name: 'Hotdogging', rating: 2, receive: false, give: true }, { name: 'Hotdogging', rating: Ratings.Yes, role: Role.Give },
{ name: 'Kissing', rating: 2, receive: true, give: true }, { name: 'Kissing', rating: Ratings.Yes, role: Role.Both },
{ name: 'Macro', rating: 1 }, { name: 'Macro', rating: Ratings.Love },
{ name: 'Milking', rating: 2 }, { name: 'Milking', rating: Ratings.Yes },
{ name: 'Muscle Growth', rating: 1, receive: true, give: true }, { name: 'Muscle Growth', rating: Ratings.Love, role: Role.Both },
{ name: 'Muscle Worship', rating: 2, receive: true, give: true }, { name: 'Muscle Worship', rating: Ratings.Yes, role: Role.Both },
{ name: 'Nipple Play', rating: 2, receive: true, give: true }, { name: 'Nipple Play', rating: Ratings.Yes, role: Role.Both },
{ name: 'Oral', rating: 1, receive: true, give: true }, { name: 'Oral', rating: Ratings.Love, role: Role.Both },
{ name: 'Rough', rating: 2, receive: true, give: true }, { name: 'Rough', rating: Ratings.Yes, role: Role.Both },
{ name: 'Sheath Play', rating: 2, receive: true, give: true }, { name: 'Sheath Play', rating: Ratings.Yes, role: Role.Both },
{ name: 'Size Difference', rating: 1 }, { name: 'Size Difference', rating: Ratings.Love },
{ name: 'Slime/Goo Characters', rating: 2 }, { name: 'Slime/Goo Characters', rating: Ratings.Yes },
{ name: 'Spanking', rating: 3, receive: false, give: true }, { name: 'Spanking', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Tailsex', rating: 2, receive: true, give: true }, { name: 'Tailsex', rating: Ratings.Yes, role: Role.Both },
{ name: 'Toys', rating: 2, receive: true, give: true }, { name: 'Toys', rating: Ratings.Yes, role: Role.Both },
{ name: 'Underwear', rating: 1 }, { name: 'Underwear', rating: Ratings.Love },
{ name: 'Unsanitary', rating: 4 }, { name: 'Unsanitary', rating: Ratings.No },
{ name: 'Verbal Abuse', rating: 3, receive: false, give: true }, { name: 'Verbal Abuse', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Vore', rating: 4 }, { name: 'Vore', rating: Ratings.No }
] ]

View file

@ -24,21 +24,21 @@ import AttackList from '@/components/AttackList.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-fire_breath-hires.png?w=640;960;1920;1330;1680&avif&quality=75&withoutEnlargement&srcset @/assets/refs/attacks/sebin-fire_breath-hires.png?w=640;960;1920;1330;1680&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-fire_breath-hires.png?w=640;960;1920;1330;1680&webp&quality=100&withoutEnlargement&srcset @/assets/refs/attacks/sebin-fire_breath-hires.png?w=640;960;1920;1330;1680&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/attacks/sebin-fire_breath-hires.png?w=640;960;1920;1330;1680&png&withoutEnlargement&srcset @/assets/refs/attacks/sebin-fire_breath-hires.png?w=640;960;1920;1330;1680&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
alt="Sebin Fire Breath" alt="Sebin Fire Breath"
@ -61,21 +61,21 @@ import AttackList from '@/components/AttackList.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-flame_toss-hires.png?w=640;960;1920;1330;1680&avif&quality=75&withoutEnlargement&srcset @/assets/refs/attacks/sebin-flame_toss-hires.png?w=640;960;1920;1330;1680&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-flame_toss-hires.png?w=640;960;1920;1330;1680&webp&quality=100&withoutEnlargement&srcset @/assets/refs/attacks/sebin-flame_toss-hires.png?w=640;960;1920;1330;1680&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/attacks/sebin-flame_toss-hires.png?w=640;960;1920;1330;1680&png&withoutEnlargement&srcset @/assets/refs/attacks/sebin-flame_toss-hires.png?w=640;960;1920;1330;1680&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
alt="Sebin Fire Breath" alt="Sebin Fire Breath"
@ -98,21 +98,21 @@ import AttackList from '@/components/AttackList.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-kindled_fist-hires.png?w=640;960;1920;1330;1680&avif&quality=75&withoutEnlargement&srcset @/assets/refs/attacks/sebin-kindled_fist-hires.png?w=640;960;1920;1330;1680&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-kindled_fist-hires.png?w=640;960;1920;1330;1680&webp&quality=100&withoutEnlargement&srcset @/assets/refs/attacks/sebin-kindled_fist-hires.png?w=640;960;1920;1330;1680&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/attacks/sebin-kindled_fist-hires.png?w=640;960;1920;1330;1680&png&withoutEnlargement&srcset @/assets/refs/attacks/sebin-kindled_fist-hires.png?w=640;960;1920;1330;1680&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
alt="Sebin Kindled Fist" alt="Sebin Kindled Fist"
@ -134,21 +134,21 @@ import AttackList from '@/components/AttackList.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-burning_twister-hires.png?w=640;960;1920;1330;1680&avif&quality=75&withoutEnlargement&srcset @/assets/refs/attacks/sebin-burning_twister-hires.png?w=640;960;1920;1330;1680&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/attacks/sebin-burning_twister-hires.png?w=640;960;1920;1330;1680&webp&quality=100&withoutEnlargement&srcset @/assets/refs/attacks/sebin-burning_twister-hires.png?w=640;960;1920;1330;1680&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/attacks/sebin-burning_twister-hires.png?w=640;960;1920;1330;1680&png&withoutEnlargement&srcset @/assets/refs/attacks/sebin-burning_twister-hires.png?w=640;960;1920;1330;1680&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px" sizes="(min-width: 120em) 560px, (min-width: 80em) 480px, (min-width: 45em) 400px, 640px"
alt="Sebin Burning Twister" alt="Sebin Burning Twister"

View file

@ -47,7 +47,7 @@ const showModal = inject<Function>(showModalKey, Function)
<picture v-if="isNsfw"> <picture v-if="isNsfw">
<source <source
srcset=" srcset="
@/assets/refs/sebin-ref-body-NSFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&avif&quality=75&withoutEnlargement&srcset @/assets/refs/sebin-ref-body-NSFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -61,7 +61,7 @@ const showModal = inject<Function>(showModalKey, Function)
/> />
<source <source
srcset=" srcset="
@/assets/refs/sebin-ref-body-NSFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&webp&quality=100&withoutEnlargement&srcset @/assets/refs/sebin-ref-body-NSFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -75,7 +75,7 @@ const showModal = inject<Function>(showModalKey, Function)
/> />
<img <img
srcset=" srcset="
@/assets/refs/sebin-ref-body-NSFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&png&withoutEnlargement&srcset @/assets/refs/sebin-ref-body-NSFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -92,7 +92,7 @@ const showModal = inject<Function>(showModalKey, Function)
<picture v-else> <picture v-else>
<source <source
srcset=" srcset="
@/assets/refs/sebin-ref-body-SFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&avif&quality=75&withoutEnlargement&srcset @/assets/refs/sebin-ref-body-SFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -106,7 +106,7 @@ const showModal = inject<Function>(showModalKey, Function)
/> />
<source <source
srcset=" srcset="
@/assets/refs/sebin-ref-body-SFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&webp&quality=100&withoutEnlargement&srcset @/assets/refs/sebin-ref-body-SFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -120,7 +120,7 @@ const showModal = inject<Function>(showModalKey, Function)
/> />
<img <img
srcset=" srcset="
@/assets/refs/sebin-ref-body-SFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&png&withoutEnlargement&srcset @/assets/refs/sebin-ref-body-SFW.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;2880;3240;3360&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -213,7 +213,7 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/sebin-ref-expressions.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/sebin-ref-expressions.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -227,7 +227,7 @@ const showModal = inject<Function>(showModalKey, Function)
/> />
<source <source
srcset=" srcset="
@/assets/refs/sebin-ref-expressions.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/sebin-ref-expressions.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -241,7 +241,7 @@ const showModal = inject<Function>(showModalKey, Function)
/> />
<img <img
srcset=" srcset="
@/assets/refs/sebin-ref-expressions.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;0&png&withoutEnlargement&srcset @/assets/refs/sebin-ref-expressions.png?w=480;720;1080;1280;1440;1600;1920;2240;960;2160;2560;0&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 2240px, sizes="(min-width: 120em) 2240px,
(min-width: 100em) 1920px, (min-width: 100em) 1920px,
@ -321,21 +321,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/upper-body-ref.png?w=400;700;1000;1200;1500;1800&avif&quality=75&withoutEnlargement&srcset @/assets/refs/upper-body-ref.png?w=400;700;1000;1200;1500;1800&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/upper-body-ref.png?w=400;700;1000;1200;1500;1800&webp&quality=100&withoutEnlargement&srcset @/assets/refs/upper-body-ref.png?w=400;700;1000;1200;1500;1800&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/upper-body-ref.png?w=400;700;1000;1200;1500;1800&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/upper-body-ref.png?w=400;700;1000;1200;1500;1800&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
alt="Sebin's upper body closeup" alt="Sebin's upper body closeup"
@ -368,21 +368,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref12.png?w=290;770;900;580;1280;1540;1700;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref12.png?w=290;770;900;580;1280;1540;1700;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 900px, (min-width: 80em) 770px, (min-width: 35em) 640px, 290px" sizes="(min-width: 120em) 900px, (min-width: 80em) 770px, (min-width: 35em) 640px, 290px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref12.png?w=290;770;900;580;1280;1540;1700;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref12.png?w=290;770;900;580;1280;1540;1700;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 900px, (min-width: 80em) 770px, (min-width: 35em) 640px, 290px" sizes="(min-width: 120em) 900px, (min-width: 80em) 770px, (min-width: 35em) 640px, 290px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref12.png?w=290;770;900;580;1280;1540;1700;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref12.png?w=290;770;900;580;1280;1540;1700;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 900px, (min-width: 80em) 770px, (min-width: 35em) 640px, 290px" sizes="(min-width: 120em) 900px, (min-width: 80em) 770px, (min-width: 35em) 640px, 290px"
alt="Sebin flexing" alt="Sebin flexing"
@ -401,21 +401,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref1.png?w=400;700;1000;1200;1500;1800;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref1.png?w=400;700;1000;1200;1500;1800;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref1.png?w=400;700;1000;1200;1500;1800;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref1.png?w=400;700;1000;1200;1500;1800;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref1.png?w=400;700;1000;1200;1500;1800;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref1.png?w=400;700;1000;1200;1500;1800;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
alt="Sebin beckons" alt="Sebin beckons"
@ -434,21 +434,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref2.png?w=415;625;875;1250;1500;1750;2250;2625&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref2.png?w=415;625;875;1250;1500;1750;2250;2625&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 875px, (min-width: 80em) 750px, (min-width: 35em) 625px, 415px" sizes="(min-width: 120em) 875px, (min-width: 80em) 750px, (min-width: 35em) 625px, 415px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref2.png?w=415;625;875;1250;1500;1750;2250;2625&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref2.png?w=415;625;875;1250;1500;1750;2250;2625&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 875px, (min-width: 80em) 750px, (min-width: 35em) 625px, 415px" sizes="(min-width: 120em) 875px, (min-width: 80em) 750px, (min-width: 35em) 625px, 415px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref2.png?w=415;625;875;1250;1500;1750;2250;2625&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref2.png?w=415;625;875;1250;1500;1750;2250;2625&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 875px, (min-width: 80em) 750px, (min-width: 35em) 625px, 415px" sizes="(min-width: 120em) 875px, (min-width: 80em) 750px, (min-width: 35em) 625px, 415px"
alt="Sebin jamming out to some tunes" alt="Sebin jamming out to some tunes"
@ -467,21 +467,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref3.png?w=400;800;1000;1200;1500;1800;2100&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref3.png?w=400;800;1000;1200;1500;1800;2100&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref3.png?w=400;800;1000;1200;1500;1800;2100&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref3.png?w=400;800;1000;1200;1500;1800;2100&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref3.png?w=400;800;1000;1200;1500;1800;2100&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref3.png?w=400;800;1000;1200;1500;1800;2100&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
alt="Sebin flexing" alt="Sebin flexing"
@ -500,21 +500,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref4.png?w=400;980;1400;1680;1960;2100;2520;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref4.png?w=400;980;1400;1680;1960;2100;2520;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 980px, (min-width: 80em) 840px, (min-width: 35em) 700px, 400px" sizes="(min-width: 120em) 980px, (min-width: 80em) 840px, (min-width: 35em) 700px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref4.png?w=400;980;1400;1680;1960;2100;2520;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref4.png?w=400;980;1400;1680;1960;2100;2520;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 980px, (min-width: 80em) 840px, (min-width: 35em) 700px, 400px" sizes="(min-width: 120em) 980px, (min-width: 80em) 840px, (min-width: 35em) 700px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref4.png?w=400;980;1400;1680;1960;2100;2520;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref4.png?w=400;980;1400;1680;1960;2100;2520;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 980px, (min-width: 80em) 840px, (min-width: 35em) 700px, 400px" sizes="(min-width: 120em) 980px, (min-width: 80em) 840px, (min-width: 35em) 700px, 400px"
alt="Sebin soaping up" alt="Sebin soaping up"
@ -533,21 +533,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref5.jpg?w=415;735;1050;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref5.jpg?w=415;735;1050;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 735px, (min-width: 80em) 630px, (min-width: 35em) 525px, 415px" sizes="(min-width: 120em) 735px, (min-width: 80em) 630px, (min-width: 35em) 525px, 415px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref5.jpg?w=415;735;1050;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref5.jpg?w=415;735;1050;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 735px, (min-width: 80em) 630px, (min-width: 35em) 525px, 415px" sizes="(min-width: 120em) 735px, (min-width: 80em) 630px, (min-width: 35em) 525px, 415px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref5.jpg?w=415;735;1050;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref5.jpg?w=415;735;1050;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 735px, (min-width: 80em) 630px, (min-width: 35em) 525px, 415px" sizes="(min-width: 120em) 735px, (min-width: 80em) 630px, (min-width: 35em) 525px, 415px"
alt="Sebin bulging out" alt="Sebin bulging out"
@ -566,21 +566,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref6.png?w=400;765;1090;1310;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref6.png?w=400;765;1090;1310;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px" sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref6.png?w=400;765;1090;1310;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref6.png?w=400;765;1090;1310;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px" sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref6.png?w=400;765;1090;1310;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref6.png?w=400;765;1090;1310;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px" sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px"
alt="Sebin showing you his rings" alt="Sebin showing you his rings"
@ -599,21 +599,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref7.tiff?w=415;995;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref7.tiff?w=415;995;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1240px, (min-width: 80em) 1190px, (min-width: 35em) 995px, 415px" sizes="(min-width: 120em) 1240px, (min-width: 80em) 1190px, (min-width: 35em) 995px, 415px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref7.tiff?w=415;995;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref7.tiff?w=415;995;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1240px, (min-width: 80em) 1190px, (min-width: 35em) 992px, 415px" sizes="(min-width: 120em) 1240px, (min-width: 80em) 1190px, (min-width: 35em) 992px, 415px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref7.tiff?w=415;995;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref7.tiff?w=415;995;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1240px, (min-width: 80em) 1190px, (min-width: 35em) 992px, 415px" sizes="(min-width: 120em) 1240px, (min-width: 80em) 1190px, (min-width: 35em) 992px, 415px"
alt="Sebin ready to throw down" alt="Sebin ready to throw down"
@ -632,21 +632,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref8.png?w=415;1000;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref8.png?w=415;1000;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 80em) 1200px, (min-width: 35em) 1000px, 415px" sizes="(min-width: 80em) 1200px, (min-width: 35em) 1000px, 415px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref8.png?w=415;1000;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref8.png?w=415;1000;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 80em) 1200px, (min-width: 35em) 1000px, 415px" sizes="(min-width: 80em) 1200px, (min-width: 35em) 1000px, 415px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref8.png?w=415;1000;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref8.png?w=415;1000;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 80em) 1200px, (min-width: 35em) 1000px, 415px" sizes="(min-width: 80em) 1200px, (min-width: 35em) 1000px, 415px"
alt="Sebin looking aloof (but chill)" alt="Sebin looking aloof (but chill)"
@ -665,21 +665,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref9.jpg?w=400;735;1470;1760;2240;1200;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref9.jpg?w=400;735;1470;1760;2240;1200;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1120px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px" sizes="(min-width: 120em) 1120px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref9.jpg?w=400;735;1470;1760;2240;1200;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref9.jpg?w=400;735;1470;1760;2240;1200;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1120px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px" sizes="(min-width: 120em) 1120px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref9.jpg?w=400;735;1470;1760;2240;1200;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref9.jpg?w=400;735;1470;1760;2240;1200;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1120px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px" sizes="(min-width: 120em) 1120px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px"
alt="Sebin getting out of the pool" alt="Sebin getting out of the pool"
@ -698,21 +698,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref10.jpg?w=380;600;850;1275;1530;1800&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref10.jpg?w=380;600;850;1275;1530;1800&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 600px, (min-width: 80em) 510px, (min-width: 35em) 425px, 380px" sizes="(min-width: 120em) 600px, (min-width: 80em) 510px, (min-width: 35em) 425px, 380px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref10.jpg?w=380;600;850;1275;1530;1800&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref10.jpg?w=380;600;850;1275;1530;1800&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 600px, (min-width: 80em) 510px, (min-width: 35em) 425px, 380px" sizes="(min-width: 120em) 600px, (min-width: 80em) 510px, (min-width: 35em) 425px, 380px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref10.jpg?w=380;600;850;1275;1530;1800&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref10.jpg?w=380;600;850;1275;1530;1800&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 600px, (min-width: 80em) 510px, (min-width: 35em) 425px, 380px" sizes="(min-width: 120em) 600px, (min-width: 80em) 510px, (min-width: 35em) 425px, 380px"
alt="Sebin getting frisky on the train" alt="Sebin getting frisky on the train"
@ -731,21 +731,21 @@ const showModal = inject<Function>(showModalKey, Function)
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref11.png?w=400;765;1200;1635;1965;2295&avif&quality=75&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref11.png?w=400;765;1200;1635;1965;2295&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px" sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/muscle/muscle-ref11.png?w=400;765;1200;1635;1965;2295&webp&quality=100&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref11.png?w=400;765;1200;1635;1965;2295&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px" sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/muscle/muscle-ref11.png?w=400;765;1200;1635;1965;2295&png&withoutEnlargement&srcset @/assets/refs/muscle/muscle-ref11.png?w=400;765;1200;1635;1965;2295&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px" sizes="(min-width: 120em) 765px, (min-width: 80em) 655px, (min-width: 35em) 545px, 400px"
alt="Sebin getting ready to lift" alt="Sebin getting ready to lift"
@ -770,17 +770,17 @@ const showModal = inject<Function>(showModalKey, Function)
<template #img> <template #img>
<picture> <picture>
<source <source
srcset="@/assets/refs/sebin-ref-penis.png?w=480;720;0&avif&quality=75&srcset" srcset="@/assets/refs/sebin-ref-penis.png?w=480;720;0&format=avif&quality=75&as=srcset"
sizes="(min-width: 45em) 1155px, (min-width: 30em) 720px, 480px" sizes="(min-width: 45em) 1155px, (min-width: 30em) 720px, 480px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset="@/assets/refs/sebin-ref-penis.png?w=480;720;0&webp&quality=100&srcset" srcset="@/assets/refs/sebin-ref-penis.png?w=480;720;0&format=webp&quality=100&as=srcset"
sizes="(min-width: 45em) 1155px, (min-width: 30em) 720px, 480px" sizes="(min-width: 45em) 1155px, (min-width: 30em) 720px, 480px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset="@/assets/refs/sebin-ref-penis.png?w=480;720;0&png&srcset" srcset="@/assets/refs/sebin-ref-penis.png?w=480;720;0&format=png&as=srcset"
sizes="(min-width: 45em) 1155px, (min-width: 30em) 720px, 480px" sizes="(min-width: 45em) 1155px, (min-width: 30em) 720px, 480px"
alt="Sebin's manly parts" alt="Sebin's manly parts"
loading="lazy" loading="lazy"

View file

@ -15,21 +15,21 @@ import RefGallery from '@/components/RefGallery.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/clothes/casual/fullbody.png?w=400;780;910;1300;1560;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/clothes/casual/fullbody.png?w=400;780;910;1300;1560;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 910px, (min-width: 80em) 780px, (min-width: 35em) 650px, 400px" sizes="(min-width: 120em) 910px, (min-width: 80em) 780px, (min-width: 35em) 650px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/clothes/casual/fullbody.png?w=400;780;910;1300;1560;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/clothes/casual/fullbody.png?w=400;780;910;1300;1560;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 910px, (min-width: 80em) 780px, (min-width: 35em) 650px, 400px" sizes="(min-width: 120em) 910px, (min-width: 80em) 780px, (min-width: 35em) 650px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/clothes/casual/fullbody.png?w=400;780;910;1300;1560;0&png&withoutEnlargement&srcset @/assets/refs/clothes/casual/fullbody.png?w=400;780;910;1300;1560;0&format=png&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 910px, (min-width: 80em) 780px, (min-width: 35em) 650px, 400px" sizes="(min-width: 120em) 910px, (min-width: 80em) 780px, (min-width: 35em) 650px, 400px"
alt="Sebin in his casual outfit" alt="Sebin in his casual outfit"
@ -51,19 +51,19 @@ import RefGallery from '@/components/RefGallery.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/clothes/cold/fullbody.png?w=400;785;915;1310;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/clothes/cold/fullbody.png?w=400;785;915;1310;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 915px, (min-width: 80em) 785px, (min-width: 35em) 655px, 400px" sizes="(min-width: 120em) 915px, (min-width: 80em) 785px, (min-width: 35em) 655px, 400px"
/> />
<source <source
srcset=" srcset="
@/assets/refs/clothes/cold/fullbody.png?w=400;785;915;1310;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/clothes/cold/fullbody.png?w=400;785;915;1310;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 915px, (min-width: 80em) 785px, (min-width: 35em) 655px, 400px" sizes="(min-width: 120em) 915px, (min-width: 80em) 785px, (min-width: 35em) 655px, 400px"
/> />
<img <img
srcset=" srcset="
@/assets/refs/clothes/cold/fullbody.png?w=400;785;915;1310;0&jpg&withoutEnlargement&srcset @/assets/refs/clothes/cold/fullbody.png?w=400;785;915;1310;0&format=jpg&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 915px, (min-width: 80em) 785px, (min-width: 35em) 655px, 400px" sizes="(min-width: 120em) 915px, (min-width: 80em) 785px, (min-width: 35em) 655px, 400px"
alt="Sebin in his cold weather outfit" alt="Sebin in his cold weather outfit"
@ -85,19 +85,19 @@ import RefGallery from '@/components/RefGallery.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/clothes/workout/fullbody.png?w=400;640;800;1070;1280;1490;1605;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/clothes/workout/fullbody.png?w=400;640;800;1070;1280;1490;1605;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 745px, (min-width: 80em) 639px, (min-width: 35em) 532px, 400px" sizes="(min-width: 120em) 745px, (min-width: 80em) 639px, (min-width: 35em) 532px, 400px"
/> />
<source <source
srcset=" srcset="
@/assets/refs/clothes/workout/fullbody.png?w=400;640;800;1070;1280;1490;1605;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/clothes/workout/fullbody.png?w=400;640;800;1070;1280;1490;1605;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 745px, (min-width: 80em) 639px, (min-width: 35em) 532px, 400px" sizes="(min-width: 120em) 745px, (min-width: 80em) 639px, (min-width: 35em) 532px, 400px"
/> />
<img <img
srcset=" srcset="
@/assets/refs/clothes/workout/fullbody.png?w=400;640;800;1070;1280;1490;1605;0&jpg&withoutEnlargement&srcset @/assets/refs/clothes/workout/fullbody.png?w=400;640;800;1070;1280;1490;1605;0&format=jpg&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 745px, (min-width: 80em) 639px, (min-width: 35em) 532px, 400px" sizes="(min-width: 120em) 745px, (min-width: 80em) 639px, (min-width: 35em) 532px, 400px"
alt="Sebin in his workout outfit (fullbody)" alt="Sebin in his workout outfit (fullbody)"
@ -119,19 +119,19 @@ import RefGallery from '@/components/RefGallery.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/clothes/workout/closeup.png?w=400;600;800;1000;1200;1400;1800;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/clothes/workout/closeup.png?w=400;600;800;1000;1200;1400;1800;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500x, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500x, 400px"
/> />
<source <source
srcset=" srcset="
@/assets/refs/clothes/workout/closeup.png?w=400;600;800;1000;1200;1400;1800;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/clothes/workout/closeup.png?w=400;600;800;1000;1200;1400;1800;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
/> />
<img <img
srcset=" srcset="
@/assets/refs/clothes/workout/closeup.png?w=400;600;800;1000;1200;1400;1800;0&jpg&withoutEnlargement&srcset @/assets/refs/clothes/workout/closeup.png?w=400;600;800;1000;1200;1400;1800;0&format=jpg&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 400px"
alt="Sebin in his workout outfit (close-up)" alt="Sebin in his workout outfit (close-up)"
@ -153,21 +153,21 @@ import RefGallery from '@/components/RefGallery.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/clothes/lazy/fullbody.png?w=400;850;1210;1460;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/clothes/lazy/fullbody.png?w=400;850;1210;1460;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 850px, (min-width: 80em) 730px, (min-width: 35em) 605px, 400px" sizes="(min-width: 120em) 850px, (min-width: 80em) 730px, (min-width: 35em) 605px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/clothes/lazy/fullbody.png?w=400;850;1210;1460;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/clothes/lazy/fullbody.png?w=400;850;1210;1460;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 850px, (min-width: 80em) 730px, (min-width: 35em) 605px, 400px" sizes="(min-width: 120em) 850px, (min-width: 80em) 730px, (min-width: 35em) 605px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/clothes/lazy/fullbody.png?w=400;850;1210;1460;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/clothes/lazy/fullbody.png?w=400;850;1210;1460;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 850px, (min-width: 80em) 730px, (min-width: 35em) 605px, 400px" sizes="(min-width: 120em) 850px, (min-width: 80em) 730px, (min-width: 35em) 605px, 400px"
alt="Tracksuit pants" alt="Tracksuit pants"
@ -189,21 +189,21 @@ import RefGallery from '@/components/RefGallery.vue'
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/clothes/lazy/undies.png?w=400;880;1028;1470;1760;0&avif&withoutEnlargement&srcset @/assets/refs/clothes/lazy/undies.png?w=400;880;1028;1470;1760;0&format=avif&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1028px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px" sizes="(min-width: 120em) 1028px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/clothes/lazy/undies.png?w=400;880;1028;1470;1760;0&webp&withoutEnlargement&srcset @/assets/refs/clothes/lazy/undies.png?w=400;880;1028;1470;1760;0&format=webp&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1028px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px" sizes="(min-width: 120em) 1028px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/clothes/lazy/undies.png?w=400;880;1028;1470;1760;0&withoutEnlargement&srcset @/assets/refs/clothes/lazy/undies.png?w=400;880;1028;1470;1760;0&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 1028px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px" sizes="(min-width: 120em) 1028px, (min-width: 80em) 880px, (min-width: 35em) 735px, 400px"
alt="Shorts" alt="Shorts"

View file

@ -9,27 +9,27 @@ import RefFigure from '@/components/RefFigure.vue'
<h1>Overdrive Form</h1> <h1>Overdrive Form</h1>
</section> </section>
<RefFigure id="overdrive-ref" polaroidBorder> <RefFigure id="overdrive-ref" cornerText>
<!-- max 1080px --> <!-- max 1080px -->
<template #img> <template #img>
<picture> <picture>
<source <source
srcset=" srcset="
@/assets/refs/sebin-overdrive_ref-hires.jpg?w=450;500;600;900;0&avif&quality=75&withoutEnlargement&srcset @/assets/refs/sebin-overdrive_ref-hires.jpg?w=450;500;600;900;0&format=avif&quality=75&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 450px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 450px"
type="image/avif" type="image/avif"
/> />
<source <source
srcset=" srcset="
@/assets/refs/sebin-overdrive_ref-hires.jpg?w=450;500;600;900;0&webp&quality=100&withoutEnlargement&srcset @/assets/refs/sebin-overdrive_ref-hires.jpg?w=450;500;600;900;0&format=webp&quality=100&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 450px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 450px"
type="image/webp" type="image/webp"
/> />
<img <img
srcset=" srcset="
@/assets/refs/sebin-overdrive_ref-hires.jpg?w=450;500;600;900;0&jpg&quality=95&withoutEnlargement&srcset @/assets/refs/sebin-overdrive_ref-hires.jpg?w=450;500;600;900;0&format=jpg&quality=95&withoutEnlargement&as=srcset
" "
sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 450px" sizes="(min-width: 120em) 700px, (min-width: 80em) 600px, (min-width: 35em) 500px, 450px"
alt="Sebin in Overdrive" alt="Sebin in Overdrive"

14
tsconfig.app.json Normal file
View file

@ -0,0 +1,14 @@
{
"extends": "@vue/tsconfig/tsconfig.dom.json",
"include": ["globals.d.ts", "env.d.ts", "src/**/*", "src/**/*.vue", "package.json"],
"exclude": ["src/**/__tests__/*"],
"compilerOptions": {
"composite": true,
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}

View file

@ -1,16 +1,11 @@
{ {
"extends": "@vue/tsconfig/tsconfig.web.json", "files": [],
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"references": [ "references": [
{ {
"path": "./tsconfig.node.json" "path": "./tsconfig.node.json"
},
{
"path": "./tsconfig.app.json"
} }
] ]
} }

View file

@ -1,8 +1,20 @@
{ {
"extends": "@vue/tsconfig/tsconfig.node.json", "extends": "@tsconfig/node20/tsconfig.json",
"include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], "include": [
"globals.d.ts",
"vite.config.*",
"vitest.config.*",
"cypress.config.*",
"nightwatch.conf.*",
"playwright.config.*"
],
"compilerOptions": { "compilerOptions": {
"composite": true, "composite": true,
"noEmit": true,
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
"module": "ESNext",
"moduleResolution": "Bundler",
"types": ["node"] "types": ["node"]
} }
} }

View file

@ -2,6 +2,7 @@ import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite' import { defineConfig } from 'vite'
import { imagetools } from 'vite-imagetools' import { imagetools } from 'vite-imagetools'
import autoprefixer from 'autoprefixer'
import vue from '@vitejs/plugin-vue' import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
@ -16,7 +17,7 @@ export default defineConfig({
css: { css: {
devSourcemap: true, devSourcemap: true,
postcss: { postcss: {
plugins: [require('autoprefixer')] plugins: [autoprefixer({})]
} }
} }
}) })