traxxx/assets/components/container/warning.vue

230 lines
3.9 KiB
Vue

<template>
<div class="warning-container">
<div class="warning">
<strong class="title">
<div
class="logo"
v-html="logo"
/>contains sexually explicit content
</strong>
<ul class="rules">
<li class="rule">You are at least 18 years old, and legally permitted to view adult material in your jurisdiction.</li>
<li class="rule">You do not regard erotic, sexual and pornographic material as obscene or offensive.</li>
<li class="rule">You understand that most sexual scenarios depicted on this website are fictional, performed by professional actors for the purpose of entertainment, and not representative of real-life interactions.</li>
</ul>
<span class="preferences">You can adjust your content preferences later</span>
<div class="actions">
<a
href="https://www.google.com"
class="button leave"
@click="$emit('leave')"
><Icon icon="arrow-left16" />Leave</a>
<button
class="button enter queer"
@click="$emit('enter', true)"
>
<span class="button-title">Enter</span>
<span class="button-sub">I want to see gay, bi and trans content</span>
</button>
<button
class="button enter straight"
@click="$emit('enter', false)"
>
<span class="button-title">Enter</span>
<span class="button-sub">I prefer straight content</span>
</button>
</div>
</div>
</div>
</template>
<script>
import logo from '../../img/logo.svg';
export default {
data() {
return {
logo,
};
},
emits: ['enter'],
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.warning-container {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 10;
background: var(--darken-censor);
overflow-y: auto;
}
.warning {
color: var(--text-light);
width: 50rem;
max-height: 100%;
max-width: 100%;
margin: 1rem;
}
.logo {
width: 8rem;
display: inline-flex;
fill: var(--primary);
margin: -.125rem .5rem 0 0;
}
.copy,
.rules {
padding: .5rem 1rem;
}
.title {
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
margin: 1rem 0 0 0;
color: var(--text-light);
}
.copy {
display: block;
padding: 0 1rem;
font-weight: bold;
}
.rules {
margin: 0 0 0 1rem;
text-align: left;
text-shadow: 0 0 3px var(--darken-extreme);
}
.rule {
padding: .5rem 1rem;
line-height: 1.5;
}
.actions {
display: flex;
text-align: center;
padding: 1rem 0;
}
.button {
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: none;
font-size: 1.5rem;
padding: 0;
border: solid 2px transparent;
color: var(--lighten-strong);
background: none;
cursor: pointer;
text-decoration: none;
flex-basis: 0;
&.leave {
flex-direction: row;
padding: 1rem;
.icon {
width: 1.5rem;
height: 1.5rem;
margin: 0 1rem 0 0;
fill: var(--lighten);
}
}
&.enter {
flex-grow: 1;
}
&.straight {
border-color: var(--primary);
}
&.queer {
border-image: linear-gradient(90deg, #f00, #f80, #ff0, #0f0, #00f, #a0f, #fff, #f8f, #0ff) 1;
}
&:not(:last-child) {
margin: 0 2rem 0 0;
}
&:hover {
color: var(--text-light);
.button-sub {
color: var(--lighten-strong);
}
.icon {
fill: var(--text-light);
}
}
}
.button-title,
.button-sub {
width: 100%;
box-sizing: border-box;
}
.button-title {
font-size: 1.5rem;
padding: .5rem 0 .15rem 0;
font-weight: bold;
}
.button-sub {
display: block;
font-size: .8rem;
padding: .15rem .5rem .75rem .5rem;
color: var(--lighten);
}
.preferences {
color: var(--lighten);
display: block;
padding: .5rem 0 1rem 0;
text-align: center;
font-size: .9rem;
}
@media(max-width: $breakpoint) {
.title {
font-size: 1.5rem;
}
}
@media(max-width: $breakpoint-small) {
.actions {
flex-direction: column-reverse;
padding: 0;
.button {
margin: 0 0 1rem 0;
}
.button:first-child {
margin: 0;
}
}
}
</style>