Files
njump/static/styles.scss
2023-10-03 16:24:20 +02:00

1081 lines
22 KiB
SCSS

$color-base1: #ffffff;
$color-base2: #fafafa;
$color-base3: #f3f3f3;
$color-base4: #c9c9c9;
$color-base5: #9a9a9a;
$color-base6: #3d3d3d;
$color-base7: #373737;
$color-accent1: #e32a6d;
$color-accent2: #bc1150;
$themes: (
default: (
base1: $color-base1,
base2: $color-base2,
base3: $color-base3,
base4: $color-base4,
base5: $color-base5,
base6: $color-base6,
base7: $color-base7,
accent1: $color-accent1,
accent2: $color-accent2,
bg-up: $color-base1,
bg-down: $color-base2,
boxed-title: $color-base7,
boxed-bg-title: $color-base4,
boxed-bg: $color-base3,
over-bg: $color-base3,
theme-toggle: $color-base3,
hrefbg: lighten($color-accent1, 44%)
),
dark: (
base1: $color-base7,
base2: $color-base6,
base3: $color-base5,
base4: darken($color-base4, 20%),
base5: $color-base3,
base6: $color-base2,
base7: $color-base2,
accent1: $color-accent1,
accent2: $color-accent2,
bg-up: darken($color-base6, 12%),
bg-down: darken($color-base7, 12%),
boxed-title: $color-base5,
boxed-bg-title: darken($color-base6, 14%),
boxed-bg: darken($color-base7, 14%),
over-bg: darken($color-base7, 4%),
theme-toggle: $color-base6,
hrefbg: darken($color-accent1, 38%)
)
);
$base1: 'base1';
$base2: 'base2';
$base3: 'base3';
$base4: 'base4';
$base5: 'base5';
$base6: 'base6';
$base7: 'base7';
$accent1: 'accent1';
$accent2: 'accent2';
$bg-up: 'bg-up';
$bg-down: 'bg-down';
$boxed-title: 'boxed-title';
$boxed-bg-title: 'boxed-bg-title';
$boxed-bg: 'boxed-bg';
$over-bg: 'over-bg';
$theme-toggle: 'theme-toggle';
$hrefbg: 'hrefbg';
$theme-map: null;
@mixin themed() {
@each $theme, $map in $themes {
.theme--#{$theme} & {
$theme-map: () !global;
@each $key, $submap in $map {
$value: map-get(map-get($themes, $theme), '#{$key}');
$theme-map: map-merge(
$theme-map,
(
$key: $value
)
) !global;
}
@content;
$theme-map: null !global;
}
}
}
@function t($key) {
@return map-get($theme-map, $key);
}
/*# sourceMappingURL=styles.css.map */
html {
font-family: Helvetica, sans-serif;
font-size: 19px;
font-weight: 300;
@media (max-width: 580px) {
font-size: 18px;
}
@media print {
font-size: 17px;
margin: 0;
}
}
body {
@include themed() {
color: t($base7);
}
@include themed() {
background: t($bg-up);
}
margin: 0;
margin-bottom: 4rem;
@media print {
margin: 0;
color: #000000 !important;
}
&.lock {
@media (max-width: 580px) {
overflow: hidden;
}
}
}
h1,
h2,
h3 {
font-weight: 300;
line-height: 1.1em;
margin-bottom: 0.5em;
}
h2 {
@include themed() {
color: t($accent1);
}
}
a {
@include themed() {
color: t($base7);
}
}
p {
margin-top: 0.5em;
text-align: justify;
@media (max-width: 580px) {
text-align: left;
}
}
iframe {
width: 100%;
height: 500px;
@media (max-width: 580px) {
height: 250px;
}
}
.h {
display: none;
}
.background {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
z-index: -1;
&::after {
content: '';
position: absolute;
@include themed() {
background: t($bg-down);
}
width: 140%;
height: 100%;
transform: rotate(-20deg);
transform-origin: bottom;
bottom: -40%;
@media (max-width: 580px) {
width: 200%;
bottom: -40%;
}
}
@media print {
display: none;
}
}
.theme-toggle {
position: fixed;
top: 1rem;
right: 1rem;
width: 1rem;
height: 1rem;
@include themed() {
color: t($theme-toggle);
}
border-radius: 50%;
cursor: pointer;
@media (max-width: 580px) {
position: relative;
float: right;
top: 0;
right: 0;
}
@media print {
display: none;
}
}
.sun {
display: none;
}
.moon {
display: block;
}
.theme--dark {
.sun {
display: block;
}
.moon {
display: none;
}
}
.top {
display: flex;
justify-content: center;
align-items: center;
padding: 1rem 0;
justify-content: left;
@media (max-width: 580px) {
display: block;
width: 90%;
padding: 1rem;
font-size: 0.8rem;
}
@media print {
display: block;
}
span {
@include themed() {
color: t($accent1);
}
}
}
.pic-wrapper {
max-width: 100%;
overflow: hidden;
-webkit-clip-path: url(#svg-shape);
clip-path: url(#svg-shape);
@media (max-width: 580px) {
flex-basis: 40%;
}
img.pic {
display: block;
max-width: 100%;
width: 100%;
height: auto;
}
}
.container_wrapper {
display: flex;
justify-content: center;
align-items: center;
@media (max-width: 580px) {
display: block;
padding: 0 1rem;
margin: 0 auto;
}
}
.nostr_link {
flex-basis: 15%;
text-align: right;
text-decoration: none;
@media print {
display: block;
text-align: right;
}
}
.container {
display: flex;
width: 70%;
justify-content: space-between;
gap: 4.8vw;
overflow: visible;
@media (max-width: 580px) {
display: block;
width: 100%;
}
@media print {
width: 100%;
}
.try {
@include themed() {
background-color: t($over-bg);
}
padding: 1.6rem 1.6rem 1rem 1.6rem;
margin-bottom: 2rem;
border-radius: 8px;
font-size: 0.8rem;
@media (max-width: 580px) {
padding: 1rem 1rem 0.8rem 1rem;
}
.tryForm {
display: flex;
align-items: center;
@media (max-width: 580px) {
flex-wrap: wrap;
justify-content: center;
}
input,
button {
flex-basis: 90%;
width: 100%;
padding: 0.5rem;
font-size: 1.2rem;
border-radius: 8px;
@media (max-width: 580px) {
flex-basis: 100%;
}
}
div {
font-size: 1.4rem;
@media (max-width: 580px) {
margin-bottom: 0.4rem;
}
}
input {
@include themed() {
color: t($base7);
background-color: t($bg-up);
// border: 1px solid t($base4);
border: none;
}
margin-left: 0.3rem;
@media (max-width: 580px) {
margin-left: 0;
border-radius: 8px 8px 0px 0px;
}
&:focus {
outline: none; /* Remove the default outline */
}
}
::placeholder {
@include themed() {
color: t($base4);
}
}
button {
flex-basis: 10%;
@include themed() {
background-color: t($accent1);
}
color: $color-base1;
border: none;
margin-left: -16px;
@media (max-width: 580px) {
flex-basis: 100%;
margin-left: 0px;
border-radius: 0px 0px 8px 8px;
}
}
}
#pickRandomEntityLink {
display: block;
margin-top: 0.2rem;
@media (max-width: 580px) {
margin-top: 0.8rem;
text-align: center;
}
}
}
.columnA {
position: -webkit-sticky;
position: sticky;
top: 2rem;
align-self: flex-start;
flex-basis: 25%;
max-width: 25%;
word-wrap: break-word;
margin-top: 2rem;
@media (max-width: 580px) {
display: flex;
position: relative;
max-width: none;
top: auto;
align-items: center;
margin-top: 0rem;
}
.info-wrapper {
display: none;
font-size: 1.6rem;
margin-bottom: 0.6em;
text-align: center;
.display {
display: block;
font-size: 1.2rem;
@include themed() {
color: t($base4);
}
}
@media (max-width: 580px) {
display: block;
text-align: left;
margin-bottom: 0;
flex-basis: 64%;
max-width: 64%;
overflow: hidden;
font-size: 1.6rem;
}
}
.last_update {
font-size: 0.8em;
margin-top: 0.5rem;
text-align: center;
@include themed() {
color: t($base4);
}
@media (max-width: 580px) {
display: none;
}
}
}
.column_content {
flex-grow: 0;
flex-shrink: 0;
word-wrap: break-word;
.info-wrapper {
font-size: 1.6rem;
h1 {
font-size: 1.6rem;
}
.display {
@include themed() {
color: t($base4);
}
}
.npub {
font-size: 1rem;
@include themed() {
color: t($base4);
}
}
@media (max-width: 580px) {
display: none;
}
}
.separator {
height: 6px;
width: 30%;
margin-left: -0.6rem;
@include themed() {
background: t($over-bg);
}
&.long {
width: 50%;
}
@media (max-width: 580px) {
margin-left: -1rem;
}
}
.field {
margin-bottom: 1.5rem;
line-height: 1.3rem;
a {
padding-bottom: 0.05rem;
margin-right: 0.2rem;
text-decoration: none;
@include themed() {
&:hover {
color: $color-accent1;
}
color: t($base7);
border-bottom: 1px solid rgba(t($base7), 0.24);
}
}
a.nostr {
@include themed() {
background-color: t($hrefbg);
}
border-bottom: none;
}
a.button {
display: inline-block;
max-width: 100%;
padding: 2px 8px;
margin-top: 0.6em;
margin-right: 0.2em;
border-bottom: 0;
border: 1px solid $color-base4;
border-radius: 8px;
&:hover {
color: $color-base1;
background-color: $color-accent1;
border: 1px solid $color-accent1;
}
}
.label {
font-size: 0.8rem;
@include themed() {
color: t($accent1);
}
}
&.advanced {
display: none;
&.visible {
display: block;
}
}
&.boxed {
padding: 0 1rem 1rem;
margin-left: -1rem;
margin-right: -1rem;
@include themed() {
background: t($boxed-bg);
}
.label {
padding: 0.2rem 1rem;
margin: 0 -1rem;
@include themed() {
color: t($boxed-title);
}
@include themed() {
background: t($boxed-bg-title);
}
}
}
pre {
overflow-x: scroll;
@include themed() {
background: t($over-bg);
}
padding: 1rem;
}
blockquote {
@include themed() {
border-left: 0.5rem solid t($over-bg);
}
padding: 0.5rem 0 0.5rem 1rem;
margin: 2rem 0;
font-style: italic;
&.mention {
border-left: 0.5rem solid $color-accent1;
padding: 0rem 0 0.5rem 1rem;
div {
@include themed() {
padding: 0.5rem 0.5rem 0.5rem 1rem;
margin: 0 0 1rem -1rem;
background-color: t($over-bg);
}
}
}
p {
margin: 0 0 0.5rem 0;
}
}
cite {
font-size: 0.8em;
}
strong {
font-weight: 400;
}
ol,
ul {
margin: 0;
padding: 0 0 0 1rem;
li {
margin-bottom: 0.5rem;
}
}
sup {
font-size: 0.6rem;
vertical-align: baseline;
position: relative;
top: -0.8em;
margin: 0 0.3rem 0 0.1rem;
}
hr {
display: none;
}
.footnotes {
padding-top: 1rem;
margin-top: 2rem;
@include themed() {
border-top: 6px solid t($over-bg);
}
font-size: 0.9rem;
line-height: 1.2rem;
}
&.last_notes {
a {
display: block;
text-decoration: none;
border-bottom: none;
&.note {
margin: 2rem 0;
.header {
display: flex;
flex-direction: row;
flex-wrap: wrap;
margin-left: -0.6rem;
margin-bottom: 0.4rem;
padding-left: 0.6rem;
padding-bottom: 0.2rem;
@include themed() {
border-bottom: 6px solid t($over-bg);
}
.published_at,
.npub {
font-size: 0.8rem;
@include themed() {
color: t($accent1);
}
}
.npub {
margin-left: auto;
@include themed() {
color: t($base6);
}
span {
padding: 0 0.2rem;
border-radius: 4px;
@include themed() {
background-color: t($hrefbg);
}
&:hover {
text-decoration: none;
@include themed() {
color: t($base1);
background-color: t($accent1);
}
}
}
}
.is_reply {
margin-left: 0.5em;
font-size: 0.8rem;
@include themed() {
color: t($base4);
}
}
}
.content {
flex-basis: 100%;
margin-top: 0.2rem;
max-height: 160px;
overflow: hidden;
&.gradient {
-webkit-mask-image: linear-gradient(
to bottom,
rgba(0, 0, 0, 1) 50%,
rgba(0, 0, 0, 0) 100%
);
mask-image: linear-gradient(
to bottom,
rgba(0, 0, 0, 1) 50%,
rgba(0, 0, 0, 0) 100%
);
}
}
}
}
a:hover {
padding-left: 1rem;
margin-left: -1.5rem;
@include themed() {
border-left: 0.5rem solid t($over-bg);
}
}
}
&.advanced-switch-wrapper {
display: flex;
align-items: center;
input[type='checkbox'] {
height: 0;
width: 0;
visibility: hidden;
display: none;
}
@media print {
display: none;
}
label:first-of-type {
cursor: pointer;
text-indent: -9999px;
width: 2.6rem;
height: 1.2rem;
@include themed() {
background: t($over-bg);
}
display: inline-block;
border-radius: 100px;
position: relative;
margin-right: 0.5rem;
@media (max-width: 580px) {
width: 3rem;
height: 1.4rem;
}
}
label:first-of-type:after {
content: '';
position: absolute;
top: 2px;
left: 2px;
width: 1rem;
height: 1rem;
@include themed() {
background: t($base7);
}
border-radius: 1rem;
transition: 0.2s;
@media (max-width: 580px) {
width: 1.2rem;
height: 1.2rem;
}
}
input:checked + label {
@include themed() {
background: t($accent1);
}
}
input:checked + label:first-of-type:after {
left: calc(100% - 2px);
transform: translateX(-100%);
@include themed() {
background: t($base1);
}
}
label:first-of-type:active:after {
width: 2rem;
}
label:last-of-type {
cursor: pointer;
font-size: 0.8rem;
@include themed() {
border-bottom: 1px solid rgba(t($base7), 0.24);
padding-bottom: 0.1rem;
}
}
}
&.content,
&.about {
line-height: 1.4rem;
img {
max-width: 100%;
margin: 1rem 0;
}
}
.json,
.data {
font-family: 'Courier New', Courier, monospace;
font-size: 0.9rem;
white-space: pre-wrap;
word-break: break-all;
margin-top: 1rem;
.key {
display: inline-block;
@include themed() {
color: t($accent1);
}
}
.string {
@include themed() {
color: t($base7);
}
}
.number {
color: darkorange;
}
.boolean {
@include themed() {
color: t($base7);
}
}
.null {
@include themed() {
color: t($base7);
}
}
}
&.last_update {
display: none;
@media (max-width: 580px) {
display: block;
font-size: 0.8em;
@include themed() {
color: t($base4);
}
}
}
}
a.pagination {
color: $color-accent1;
&.next {
float: right;
}
&.prev {
float: left;
}
}
}
.column_clients {
position: -webkit-sticky;
position: sticky;
top: 2rem;
align-self: flex-start;
flex-basis: 25%;
margin-top: 1rem;
@media (max-width: 580px) {
position: fixed;
top: auto;
bottom: 0;
left: 0;
width: 100%;
transition: all 500ms ease-in-out;
&.up {
.btn {
display: block;
}
.title span.open {
display: none;
}
}
}
@media print {
display: none;
}
.title {
font-size: 0.8rem;
margin-bottom: 1rem;
text-align: center;
span.open,
span.close {
display: none;
}
@media (max-width: 580px) {
position: absolute;
top: 0;
right: 0;
width: 2.6rem;
height: 2.6rem;
border-left: 1px solid #bc1150;
span.text {
display: none;
}
span.open,
span.close {
display: inline;
svg {
width: 50%;
height: 50%;
margin: 28% auto auto auto;
display: block;
}
}
}
}
.btn {
display: flex;
align-items: center;
margin-bottom: 0.8rem;
@media (max-width: 580px) {
display: none;
margin-bottom: 0;
}
a {
flex-basis: 100%;
padding: 0.4rem;
text-align: center;
font-size: 0.9rem;
color: $color-base1;
background-color: $color-base6;
border-bottom: 1px solid darken($color-base7, 14%);
text-decoration: none;
border-radius: 8px;
@media (max-width: 580px) {
display: block;
padding: 0.8rem;
border-radius: 0px;
font-weight: 400;
text-align: left;
}
span {
display: none;
@media (max-width: 580px) {
display: inline;
color: $color-base1;
}
}
&:hover {
background: $color-base7;
}
}
&:first-of-type {
@media (max-width: 580px) {
display: block;
}
a {
@include themed() {
background: t($accent1);
}
border-bottom: none;
@media (max-width: 580px) {
border-radius: 8px 8px 0 0;
}
&:hover {
@include themed() {
background: t($accent2);
}
}
}
}
span {
flex-basis: 20%;
margin-left: 0.4rem;
color: $color-base1;
@media (max-width: 580px) {
display: none;
}
}
}
}
}
body.homepage {
.container_wrapper {
display: block;
@media (max-width: 580px) {
display: block;
padding: 0 1rem;
margin: 0 auto;
}
.container {
display: block;
width: 60%;
margin: 0 auto;
@media (max-width: 580px) {
display: block;
width: 100%;
}
span.exampleUrl {
@include themed() {
background-color: t($hrefbg);
}
padding: 0 0.2rem;
border-radius: 4px;
}
}
}
}
body.profile {
.column_content {
flex-basis: 50%;
max-width: 50%;
@media (max-width: 580px) {
flex-basis: 100%;
max-width: 100%;
margin-right: 0;
}
}
}
body.note,
body.other {
.column_content {
flex-basis: 75%;
max-width: 75%;
@media (max-width: 580px) {
flex-basis: 100%;
max-width: 100%;
margin-right: 0;
}
@media print {
flex-basis: 100%;
max-width: 100%;
}
.profile_intro {
display: flex;
max-width: 100%;
align-items: center;
margin-bottom: 1rem;
@media print {
margin-bottom: 1rem;
}
a {
display: inherit;
width: 100%;
align-items: inherit;
margin: 1rem 0 1rem 0;
text-decoration: none;
flex-wrap: wrap;
@media (max-width: 580px) {
margin-top: -0rem;
margin-bottom: -0.5rem;
}
}
.info-wrapper {
flex-grow: 1;
@media (max-width: 580px) {
display: block;
}
@media print {
font-size: 1rem;
}
.name,
.npub {
@media (max-width: 580px) {
display: block-inline;
font-size: 0.9rem;
}
}
}
.pic-wrapper {
flex-basis: 16%;
margin-right: 1rem;
@media (max-width: 580px) {
margin-right: 0.5rem;
}
@media print {
flex-basis: 10%;
}
}
}
.published_at,
.reply_of {
width: 100%;
text-align: right;
align-self: end;
font-size: 0.8rem;
@include themed() {
color: t($base5);
}
a {
@include themed() {
color: t($accent1);
}
}
}
.reply_of {
margin-top: 0.2rem;
}
}
}
.footer {
margin-top: 2rem;
color: $color-base5;
font-size: 0.8rem;
text-align: center;
a {
color: $color-base5;
}
}
@media print {
@page {
margin: 2cm 3cm;
}
/* Safari specific styles */
body.safari {
margin: 1cm 3cm;
}
}