Compare commits

...

10 commits

10 changed files with 140 additions and 62 deletions

View file

@ -39,7 +39,7 @@
--clr-box-background: var(--theme-c-primary-150);
--clr-box-border: var(--theme-c-primary-250);
--clr-box-shadow: var(--theme-c-primary-200);
--clr-box-shadow: oklch(from var(--theme-c-primary-800) l c h / 0.25);
--clr-box-gradient-start: oklch(from var(--clr-box-background) calc(l + 0.3) c h);
--clr-box-gradient-end: oklch(from var(--clr-box-background) l c h);
@ -132,6 +132,5 @@
--clr-link-underline: var(--clr-accent-1);
--clr-gallery-indicator: var(--clr-accent-1);
--clr-gradient-box-shadow: var(--clr-accent-1);
}
</style>

View file

@ -4,7 +4,7 @@
return `${fullName} — Character Reference`;
}
return 'Choose Your Character!';
return "Sebin's Characters — Home";
};
const getImageUrl = (char, type = 'og') =>

View file

@ -26,6 +26,7 @@
--nav-spacing: 1em;
--nav-background-color: var(--clr-nav-background);
--nav-border: var(--border-thin) solid var(--clr-box-border);
--box-shadow: 0.125em 0.125em 0.75em 0.25em var(--clr-box-shadow);
position: sticky;
inset: 0.5em;
@ -34,6 +35,7 @@
justify-items: end;
background-color: var(--nav-background-color);
box-shadow: var(--box-shadow);
margin-block: 0.5em 0;
margin-inline: 0.5em;
@ -46,6 +48,7 @@
--nav-spacing: 1.5em;
--nav-background-color: transparent;
--nav-border: none;
box-shadow: none;
}
@media (min-width: 64em) {
@ -94,6 +97,7 @@
list-style: none;
background-color: var(--clr-nav-background);
box-shadow: var(--box-shadow);
margin: 0;
border-block-start: none;

View file

@ -7,11 +7,50 @@
const getAltText = (name) => name.charAt(0).toUpperCase() + name.slice(1) + ' Avatar';
</script>
<script>
const betaNote = document.querySelector('.beta-note');
const btn = betaNote.querySelector('.btn');
btn.addEventListener('click', (e) => {
e.preventDefault();
betaNote.style = 'display: none';
});
</script>
<main>
<header>
<h1>Welcome!</h1>
<p>Select your character:</p>
</header>
<section class="beta-note">
<p>
<strong>🏗️ Work in progress! 🚧</strong> Please note that while most of this site is close to
98% done, it is still being worked on and contents are subject to change.
</p>
<ref-button class="btn">Okie-dokie!</ref-button>
</section>
<section class="intro">
<h1>Sebin's Characters</h1>
<p>Hiya! 👋🏻 Welcome to my character reference page! 😊</p>
<p>
This is where you can learn all about my characters with detailed descriptions and lore about
each one.
</p>
<ul>
<li>
<strong>For Artists</strong> this site provides comprehensive reference material and
detailed descriptions for each of my characters to help depict them in the best way
possible.
</li>
<li>
<strong>Everyone else</strong> is free to explore the design and lore of my characters to
get to know them better!
</li>
</ul>
<p>
I put a lot of effort into giving all of them a home and I hope you'll find the information
provided enlightening and insightful. Have fun!
</p>
</section>
<h2 class="char-select">Select Your Character</h2>
<div class="characters">
<card webc:for="char of characters" :href="`/${char}/`">
@ -25,53 +64,55 @@
<p @text="getDescription(char)"></p>
</card>
</div>
<section class="beta-note">
<p class="head">🏗️ Work in progress! 🚧</p>
<p>Please note that this site is still being worked on and contents are subject to change.</p>
</section>
</main>
<style>
main {
max-width: 130ch;
margin: auto;
padding: 1em;
}
header {
.intro {
max-width: 65ch;
margin: auto;
}
.intro h1 {
font-size: clamp(2.125em, 10vw, 4em);
text-align: center;
}
& h1 {
font-size: clamp(3.5em, 5vw, 7em);
margin-block: clamp(0.25em, 1.75vw, 0.375em);
}
& p {
font-size: clamp(1.25em, 1.5vw, 2.25em);
margin-block: clamp(0.25em, 10vw, 1em);
}
.char-select {
font-size: clamp(1.75em, 8vw, 3em);
text-align: center;
}
.characters {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(17.5em, 1fr));
gap: 1.5em;
width: 90vw;
max-width: 100ch;
margin: auto;
}
.beta-note {
max-width: 60ch;
display: flex;
flex-flow: row wrap;
justify-content: space-between;
align-items: center;
gap: 1em;
background-color: var(--clr-box-background);
margin: auto;
margin-block: 2em;
border: 0.125em solid white;
border-radius: 0.75em;
padding-inline: 1em;
border: 0.125em solid var(--clr-box-border);
border-radius: 1em;
padding: 1em;
}
.beta-note .head {
font-family: var(--font-family-headings);
font-size: 1.5em;
font-weight: bold;
.beta-note > * {
margin-block: 0;
}
</style>

View file

@ -1,5 +1,6 @@
---
layout: base.webc
feedbackLink: https://cloud.sebin-nyshkim.net/apps/forms/s/eHjsosE9FB4fCpjBt4mbPfje
---
<popup-modal id="nsfw-warning" :open="isOpen">
@ -32,10 +33,13 @@ layout: base.webc
<footer>
<p>
Made with <a href="https://11ty.dev" target="_blank">11ty</a><br />
Made with ❤️ and <a href="https://11ty.dev" target="_blank">11ty</a><br />
Icons by <a href="https://fontawesome.com/">Font Awesome</a>
</p>
<p>&copy; Sebin Nyshkim 2025</p>
<p>
&copy; <time @text="new Date().getFullYear()"></time> Sebin Nyshkim<br />
Got <a :href="feedbackLink" target="_blank">feedback</a>?
</p>
</footer>
</main>

View file

@ -21,13 +21,15 @@ eleventyNavigation:
<traits :@traits="$data.getTraits('anatomy')"></traits>
</quick-info>
Sebin is the offspring of a human and a dragon. Like a human, he is a bipedal plantigrade. Most of his body is covered with red scales. Yellow scales run from the underside of his jaw over his chest and legs to the underside of the tip of his tail. These scales are particularly hard and function like plate armor to better protect vital organs.
Sebin is the offspring of a human and a dragon, commonly known as an anthro dragon. His whole body is covered in a layer of flexible, vibrant red scales, next to a set of yellow ones that run along his jaw, across his chest, and down the underside of his tail. The yellow scales on his chest and abdomen are harder than the rest and act like plate armor to protect vital organs.
Sebin's finger and toe tips are equipped with sharp black claws. He equally uses them as tools and weapons.
Sebin's fingers and toes are equipped with sharp black claws, which he uses in all sorts of useful ways: from opening packaging with a quick scratch to pricking cans with pointed pressure. They allow him to forgo special tools for a few applications. They're also invaluable for self-defense to fend off unfriendly fellows.
A ridge of brown thorns runs from his head over his back to the tip of his tail. However, they are too blunt to cause injury. His tail is about 1.04 meters (<span @text="$data.toImperial(104)" webc:nokeep></span>) in length.
A ridge of brown thorns runs along Sebin's spine, from the base of his neck all the way down to his tail tip. These thorns may look intimidating, but they're too blunt to cause injury. His tail is about <span @text="tailLength / 100" webc:nokeep></span> meters (<span @text="toImperial(tailLength)" webc:nokeep></span>) in length and is quite strong and flexible. He uses it as support to lean against when a back rest is hard to come by as well as holding onto things. As with his claws, his tail is both tool and defense instrument, a good whack from it is sure to make you see stars.
Sebin has a muscular build that he keeps in shape with regular exercise.
Despite his reptilian heritage, Sebin inherited nipples from the human side of his family.
Sebin has a muscular build that he keeps in shape with regular exercise, which he is very disciplined about. He prioritizes strength training, cardiovascular workouts, and flexibility exercises as part of his regular routine. He always challenges himself and pushes his body to its limits.
## Wings
@ -46,7 +48,11 @@ Sebin has a muscular build that he keeps in shape with regular exercise.
<traits :@traits="$data.getTraits('wings')"></traits>
</quick-info>
Sebin's wings have a span of about 4.17 meters (13'8"). They function very much like a second pair of arms: two interconnected limbs that form a bendable arm, at the end of which sits a hand-like structure, adorned with a talon in exchange for a thumb, with a sturdy membrane stretched between its long fingers. On solid ground, he keeps his wings closed so as not to accidentally bump into anything with them. Sebin also pays a lot of attention to his wings when working out, so that they can keep carrying him reliably through the air. Though, he only travels short to medium distances through the air before he has to take a rest - as long as the airspace in the area has been declared open for wing bearers.
Sebin's wings span around <span @text="wingspan / 100" webc:nokeep></span> meters (<span @text="toImperial(wingspan)" webc:nokeep></span>) from tip to tip. They function much like a second pair of arms, consisting of two interconnected limbs that form a bendable arm, complete with a hand-like structure at the end. In this hand, a sharp talon takes the place of a thumb, and a sturdy membrane stretches between its long fingers.
Sebin makes sure to keep his wings in shape like the rest of his body during workouts. This is especially important for his aerial pursuits, as his wings need to be strong enough to carry him reliably through the air.
While Sebin's wings can carry him short to medium distances, there are limitations to his flights. He only ventures into the air when airspace has been declared open for wing bearers, and he always makes sure to take regular breaks to rest and recharge. When Sebin walks on solid ground, he keeps his wings folded close to his body to avoid bumping into things.
## Head
@ -64,7 +70,15 @@ Sebin's wings have a span of about 4.17 meters (13'8"). They function very much
<traits :@traits="$data.getTraits('head')"></traits>
</quick-info>
Despite what one might expect with reptilians, Sebin's pupils are rounded instead of slit-shaped. Yellow spikes running above his eyelids serve as eyebrows. These spikes are also found along his jaw bone. Two pointed, slightly curved, black horns protrude from his head. He usually wears his medium-length, blue hair loose. His long, pointed ears are very flexible, allowing him to hear sounds around him without having to turn his head. They are also used for non-verbal communication, to express emotions through body language. His hearing perceives a wider range of frequencies, making it superior to that of a human. His jaws are equipped with razor-sharp teeth that effortlessly sink into anything he manages to bite, be it nourishment or adversaries. Embedded between them lies his tongue, which is typically pointed for reptilians. Glands in his throat produce a mixture which he uses to spit fire, which can reach up to around 100 °C (<span @text="$data.toFahrenheit(100)" webc:nokeep></span> °F).
Unlike most reptilians, Sebin has rounded pupils. Yellow spikes above his eyes serve as his eyebrows. The same yellow spikes also run along his jawbone. Two pointed, slightly curved horns protrude from his head, as is characteristic among dragons.
Sebin likes to wear his medium-length, blue hair loose. But he's not avert to experiment with different hair styles.
As a dragon, Sebin's hearing is highly attuned, capable of detecting a wider range of frequencies than humans. His long and pointed ears are very flexible, enabling him to pinpoint sounds without needing to turn his head. This flexibility also allows him to convey emotions through subtle body language.
Sebin's jaws are equipped with razor-sharp teeth that can easily sink into anything he bites—whether that's food or an adversary. Embedded between these powerful jaws lies a pointed tongue, typical of reptilians.
When threatened or enraged, Sebin can unleash a stream of fire from his mouth, which can reach temperatures of up to 160 °C (<span @text="$data.toFahrenheit(160)" webc:nokeep></span> °F). This potent defense mechanism is made possible by glands in his throat that produce a flammable mixture.
## Upper body
@ -82,13 +96,13 @@ Despite what one might expect with reptilians, Sebin's pupils are rounded instea
<traits :@traits="$data.getTraits('muscle')"></traits>
</quick-info>
At the age of 17, Sebin gradually began to keep his body in shape on a regular basis. His favorite exercises include weightlifting (with both dumbbells and barbells), lat pulldown, leg press and cable curls. He works out three days a week with one day off between training days, rotating the body regions he trains each day.
At 17 years old, Sebin started prioritizing regular exercise to maintain his physical health and fitness. He developed a well-rounded workout routine that includes weightlifting, lat pulldowns, leg presses, and cable curls for a wholistic regimen.
Sebin is very concerned with an even distribution of muscle mass, but pays particular attention to his back, chest and arms. A strong chest with strong arms helps to throw fire projectiles as far as possible. A strong back guarantees a longer stay in the air.
Sebin in not just about raw physical strength, but also equal distribution of muscle mass throughout his body in order to achieve several benefits: Stronger arms enable him to launch fire projectiles farther and with greater precision. A well-maintained upper body ensures flexibility and mobility, while strong wing arms allow for longer periods in the air. And with powerful legs, he enjoys increased agility on the ground.
## Additional Muscle References
An assortment of additional references how Sebin can be drawn.
Sebin's drawn muscle anatomy can vary quite a bit. It can range from athletic to body builder type, though the focus leans more to the latter.
<slider>
<ref-img webc:for="ref of [...Array(9).keys()]"
@ -107,7 +121,7 @@ An assortment of additional references how Sebin can be drawn.
## Danger Zone
You haven't seen it *all*, yet! 👀💦
There's still one piece of anatomy you *haven't* seen yet! 👀💦
</div>
## Penis
@ -126,5 +140,7 @@ You haven't seen it *all*, yet! 👀💦
<traits :@traits="$data.getTraits('naughty')"></traits>
</quick-info>
Despite his reptilian appearance, Sebin has nipples, a feature of the human side of his family. Furthermore, his external testicles represent another humanized feature. Where relatives of his ilk possess a slit in which the penis lies protectively, Sebin possesses a pouch-like sheath from which the tip of the penis protrudes slightly. The shape of his shaft is predominantly humanoid, but it is surrounded by ridges and has no equivalent of a foreskin. When aroused, the coal-black shaft swells and pushes out of the sheath until fully erect, the sheath wrapping around the root of the shaft like a ring. However, he can also push it out in a flaccid state, e.g. when needing to pass water.
Sebin's genitalia are a mix of both human and dragon features: while his testicles are exposed, his shaft usually rests inside a sheath-like pouch. The shape of his shaft is predominantly humanoid, circled by ridges that cover its entire length.
When aroused, the charcoal colored shaft swells, pushes out of the sheath and stretches it to sit snug around the shaft's base until fully erect. It can, however, also extend outwards in a flaccid state when needed.
</nsfw-barrier>

View file

@ -14,44 +14,42 @@ eleventyNavigation:
:@dropshadow="false"
></ref-img>
Sebin can enter an Overdrive Form which greatly increases his strength and abilities but it comes at a cost.
When Sebin enters Overdrive Form, his strength and abilities skyrocket and his physical appearance undergoes significant changes.
He enters Overdrive by engulfing himself in a pillar of flames which transforms his exterior physique. During Overdrive transformation his hair ignites and flickers with blue flames. The corners of his eyes flicker with long green flames. His arms and legs become part carbon black and are crossed by several glowing veins which pulsate like flowing lava. Fire in this form burns several degrees hotter than usual because his body becomes a living blast furnace, which is why his limbs have to be of more fire-proof material to withstand the increased heat.
He initiates the transformation by engulfing himself in a blazing pillar of flames. His hair ignites into a frenzy of blue flames that flicker in the wind, while the corners of his eyes burn with long, intense green flames. His arms and legs morph into carbon-black instruments of destruction, crossed by pulsating veins that glow like flowing lava. In order to complete his transformation, Sebin inhales the flames that surround him to channel the heat into his own body.
To complete the transformation he inhales the flames from the pillar surrounding him which heats up his body from within. Even if Sebin is a fire dragon who can sustain high degrees of heat he is essentially overheating himself from the inside. Because of this he can't maintain this form for more than a few hours before he does permanent damage to his own body.
His limbs aren't the only thing getting tempered in the flames, Sebin's remaining scales also gain increased resilience. The scales on his chest become a plate armor, at the center of which flickers a diamond-shaped crest, showing only a glimpse of the intense heat that burns beneath.
Direct body contact with Sebin during overdrive causes 3rd degree burns as he emits an extreme temperature, although less than he keeps inside his body. His immediate surroundings are likely to burn or melt.
The unprecedented heat his fiery transformation imbues his body with can be felt even from a distance. The risks of being in close proximity to Sebin during Overdrive are dire: a direct hit from his magma-infused limbs causes severe third-degree burns. Sebin's ranged attacks are equally devastating, as he becomes able to unleash fire blasts directly out of the palms of his hands.
Although he can endure high temperatures as a fire dragon, this internal combustion still puts considerate strain on his body. Sustaining this form for more than a couple hours bears the risk of causing permanent damage to himself. He therefore only taps into this power as a last resort.
## Attacks
<ability @name="Fire Breath (improved)">
The reach of Sebin's Fire Breath increases as well as the frequency at which he can fire shots from his mouth.
The reach of Sebin's fire breath increases significantly and burns several orders of magnitude hotter. He also becomes able to fire burst shots in rapid succession.
</ability>
<ability @name="Flame Toss (improved)">
Overdrive Form eliminates the need for Sebin to spit fire into his palms. It instead enables him to fire the shots directly from the palm palm of his hands, as the fiery veins crossing his arms act as an orifice to do so. The explosion radius of the burning projectiles that explode on impact is greatly increased.
Overdrive eliminates the need for Sebin to spit fire into his palms. Instead, he fires bursts directly out of the palms of his hands. The fiery veins in his arms act as a conduit, channeling the intense heat through the palm and out into projectiles that explode with massive force upon impact.
</ability>
<ability @name="Kindled Fist (improved)">
As his arms and legs are infused with fire his punches and kicks exert trails of flames while doing so. Landing a punch or kick sears enemies.
In close quarters combat, Sebin's blazing punches and kicks leave scorching trails in their wake. Each impact not only sends his opponents flying but also inflicts severe burns.
</ability>
<ability @name="Searing Discus">
Overdrive allows Sebin to form rings of fire by igniting flames from his fingertips and swirling them in a circle motion. He can use them for both close quarters or ranged combat.
Overdrive allows Sebin to summon blazing rings of fire that he forms with his fingertips like whirling torches. These fiery constructs can be deployed at close range or hurled across distances, making him a formidable opponent in either situation.
</ability>
<ability @name="Combustion Flare">
Clinking both of his wrists against each other like flints unleashes a devastating fire blast from both of his fire-infused hands. A secure foothold is needed to prevent Sebin from being thrown back by the recoil of the attack. Using this technique in the air is therefore highly risky.
By striking his wrists together like flints, Sebin is able to unleash a combined fire blast from both hands. The force of the explosion necessitates a secure foothold to deal with the recoil, which makes launching this attack rather precarious while airborne.
</ability>
<ability @name="Blazing Pandemonium">
A heavy impact into the ground from a great height with both fists, tearing deep cracks in the ground around the impact crater. Combined with Kindled Fist the heat in Sebin's arms are forced through the newly created furrows, transforming the scene into an inferno.
Sebin unleashes a crushing blow with both fists from great height, creating a devastating crater that cracks the surrounding terrain. Combined with Kindled Fist, the fire in Sebin's arms is forced through the newly created furrows, transforming the scene into an inferno.
</ability>
<ability @name="Scorching Edge">
A fiery blade towering several meters into the air that Sebin sends careening towards his enemies from his fire-infused legs with a back-flip kick, leaving a swath of destruction in its wake. Upon impact the force of the attack is distributed sideways.
</ability>
<ability @name="Circling Fire Shield">
A rather defensive technique. By spinning around with stretched out arms Sebin creates fire balls, which he usually hurls towards enemies, that circle around his body diagonally. They act as a shield while he can still move his arms relatively freely. Enemies would be well advised to keep their distance to this spinning shield, as the fire balls will still explode on contact.
A towering beam of fire that Sebin sends careening towards his enemies with a backflip kick of his fire-infused legs. The farther it travels, the higher it grows, leaving a swath of destruction in its wake. Upon impact, the beam diffuses sideways.
</ability>

View file

@ -22,7 +22,7 @@ const firstName = 'Sebin',
position = 'vers, prefers top',
height = 210, // cm
weight = 124, // kg
tailLength = 104, // cm
tailLength = 154, // cm
wingspan = 417, // cm
colors = [
{ name: 'Scales', value: '#c64c35' },
@ -165,6 +165,8 @@ export default {
pronouns,
orientation,
position,
tailLength,
wingspan,
colors,
kinks,
description,

14
src/sitemap.njk Normal file
View file

@ -0,0 +1,14 @@
---
permalink: /sitemap.xml
eleventyExcludeFromCollections: true
---
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for page in collections.all %}
<url>
<loc>{{ base }}{{ page.url | url }}</loc>
<lastmod>{{ page.date.toISOString() }}</lastmod>
<changefreq>{{ page.data.changeFreq if page.data.changeFreq else "monthly" }}</changefreq>
</url>
{% endfor %}
</urlset>

View file

@ -22,7 +22,7 @@ Viktor has taken on a variety of jobs in his life. He's not particularly picky a
Viktor proved to have a hand as a welder and spent his days working shifts in a workshop, where he utilized his unique combination of tools and techniques to create precise, high-quality work. His powerful tail club proved particularly useful for shaping metal parts, while gaining knowledge on how to work with various alloys. However, a jealous coworker saw a rival in Viktor and began to sabotage his work, secretly tampering with the equipment or undermining his techniques. After enough jobs Viktor worked on were botched and him not able to give any explanation, he was ultimately let go after a customer sued the welding shop for damages—an event that still weighs heavily on him.
</job>
<job @title="Delivery Driver" @icon="fa6-solid:truck">
When Viktor was strapped for cash, he found himself turning to the gig economy, working as a delivery driver for a major online delivery service. It wasn't the most challenging work, but at least he had no significant trouble hauling hauling heavy packages to their destinations. If only the supervisors hadn't been constantly breathing down his neck, he might've even kept the job for longer. But after one of the shift managers tried to show him up in front of the whole team, Viktor finally snapped and shattered one of the manager's kneecaps with the club on the tip of his tail. Of course, he didn't have to report for duty the next day, or ever for that matter.
When Viktor was strapped for cash, he found himself turning to the gig economy, working as a delivery driver for a major online delivery service. It wasn't the most challenging work, but at least he had no significant trouble hauling heavy packages to their destinations. If only the supervisors hadn't been constantly breathing down his neck, he might've even kept the job for longer. But after one of the shift managers tried to show him up in front of the whole team, Viktor finally snapped and shattered one of the manager's kneecaps with the club on the tip of his tail. Of course, he didn't have to report for duty the next day, or ever for that matter.
</job>
<job @title="Docks Werehouse Worker" @icon="fa6-solid:boxes-stacked">
Currently, Viktor works at the docks in the port town where he relocated. Among his responsibilities is the loading and unloading of cargo to and from ships via forklift and other transport vehicles. He's also responsible for checking that cargo arrived intact and consumables didn't spoil on the way. The hustle and bustle of the port sometimes gets on his nerves, but he manages. At least until the crew members from docking ships arrive ashore after extended periods at sea and start strutting around all high and mighty. Viktor finds himself butting heads with them a lot due to their tendency to look down on "landlubbers" and his low tolerance for their bullshit. Over time, however, he established his status somewhat and the crew members dialed back their attitude around him.