[TWIG][CSS] Complete HTML refactoring, now using details element instead of a checkbox trick per panel. Using a "grid" akin to IBM's Carbon design guidelines.

This commit is contained in:
Eliseu Amaro 2021-07-20 13:18:57 +01:00 committed by Diogo Peralta Cordeiro
parent aa6886a62a
commit a5eb231196
Signed by: diogo
GPG Key ID: 18D2D35001FBFAB0
12 changed files with 233 additions and 1903 deletions

View File

@ -1,27 +1,31 @@
:root {
/* fonts */
/* FONTS */
--display-font: 'Manrope-ExtraBold', sans-serif;
--main-font: 'Inter', sans-serif;
/* font and margin sizes */
--unit-size-h: calc(100vh / 9);
--unit-size-w: calc(100vw / 9);
/* UNITS
* unit size - every element should be a multiplier of this
* main size - used for headers and icons
* medium size - same as above, except that the element in question is contained in something else
* small size - used in common text, borders
*/
--unit-size: 0.5rem;
--main-size: 1.5rem;
--medium-size: 1.125rem;
--small-size: 1rem;
/* colours and shadows */
--fg: #eceff4;
--accent: #81a1c1;
--accent-low: #81a1c160;
--bg-trans1: rgba(46, 52, 64, 0.42);
--bg-trans2: rgba(46, 52, 64, 0.21);
--bg1: #2e3440;
--bg2: #3b4252;
--bg3: #434c5e;
--bg4: #4c566a;
--bg5: #d8dee9;
--shadow: 0px 0px 20px 0px rgba(46,52,64,0.95);
--black: #040506;
--bg1: #383E51;
--bg2: #434A60;
--bg3: #5C6684;
--white: #EEDFD4;
--accent-blue: #8E8DBE;
--accent-red: #FF6666;
--accent-green: #2EC4B6;
--shadow: 0px 0px 16px 0px #383E51;
}
/* TYPOGRAPHY */
@ -67,27 +71,6 @@ p {
text-transform: none;
}
/* DEFAULTS */
body,
html {
height: 100%;
width: auto;
color: var(--fg);
/* BLENDING BANDING IN FIREFOX */
/* basically emulating screen blending with just "images" */
background-image: linear-gradient(var(--bg1) 10%, var(--bg4) 80%),
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
background-blend-mode: multiply;
background-attachment: fixed;
filter: invert();
}
hr {
margin: 0;
color: var(--accent-low);
}
ul {
text-decoration: none;
margin: 0;
@ -103,89 +86,73 @@ li {
a:link {
text-decoration: none;
outline: 0;
color: var(--fg);
color: var(--bg3);
}
a:visited {
outline: 0;
color: var(--fg);
color: var(--bg3);
margin: 0;
padding: 0;
}
a:hover {
color: var(--fg);
color: var(--accent-blue);
transition: all 0.8s ease;
}
a:focus {
color: var(--fg);
color: var(--accent-blue);
transition: all 0.8s ease;
}
/* HEADER */
#header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 100vh;
/* ALLOW MAIN CONTENT POINTER EVENTS */
pointer-events: none;
}
#top {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
/* DEFAULTS */
body,
html {
height: 100%;
width: auto;
color: var(--white);
/* PARENT HAS NO POINTER EVENTS */
pointer-events: all;
/* BLENDING BANDING IN FIREFOX */
/* basically emulating screen blending with just "images" */
background-color: var(--bg1);
background-image: radial-gradient(ellipse at bottom, var(--bg1), transparent),
url(data:image/png;base64,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);
background-blend-mode: multiply;
background-attachment: fixed;
}
.icon-menu {
display: none;
width: var(--main-size);
height: var(--main-size);
stroke: currentColor;
fill: currentColor;
#header {
display: flex;
justify-content: center;
position: fixed;
pointer-events: none;
width: 100%;
height: calc(5 * var(--unit-size));
padding: var(--small-size);
background: repeating-linear-gradient(var(--bg2), var(--bg1)),
url(data:image/png;base64,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);
background-blend-mode: multiply;
box-shadow: var(--shadow);
}
#instance {
order: 1;
font-size: var(--main-size);
display: flex;
justify-content: center;
height: calc(var(--unit-size-h) / 2);
width: 100%;
padding: 0;
box-sizing: border-box;
background-color: var(--bg1);
color: var(--fg);
-webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.10);
-moz-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.10);
box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.10);
}
#instance a {
font-family: var(--display-font);
font-size: var(--main-size);
display: inline-flex;
flex-wrap: nowrap;
align-items: center;
align-self: center;
justify-content: center;
height: 100%;
width: 100%;
}
#instance a {
display: flex;
color: var(--white);
font-size: var(--main-size);
}
.icon-logo {
margin-right: 5px;
stroke-width: 0;
stroke: currentColor;
fill: var(--fg);
vertical-align: middle;
margin-right: var(--small-size);
fill: var(--white);
}
#panels {
order: 2;
display: flex;
.navigation {
padding-top: calc(2 * var(--small-size) + var(--main-size));
}

View File

@ -1,258 +0,0 @@
:root {
/* fonts */
--main-font: 'Montserrat', sans-serif;
--main-font: 'Open Sans', sans-serif;
/* font and margin sizes */
--main-size: 1.15em;
--medium-size: 0.7em;
--small-size: 0.65em;
--unit-size: 1em;
--side-margin: 5em;
--nav-size: 15em;
/* colours and shadows */
--fg: #eceff4;
--accent: #81a1c1;
--accent-low: #81a1c160;
--bg1: #2e3440;
--bg2: #3b4252;
--bg3: #434c5e;
--bg4: #4c566a;
--bg5: #d8dee9;
--shadow: 0px 0px 20px 0px rgba(46,52,64,0.95);
}
/* DEFAULTS */
body,
html {
background: var(--bg1);
background-attachment: fixed;
background-size: cover;
color: var(--fg);
font-family: var(--main-font);
font-size: var(--main-size);
margin: 0;
padding: 0;
}
ul {
text-decoration: none;
margin: 0;
padding: 0;
list-style: none;
}
li {
margin: 0;
padding: 0;
}
a:link {
text-decoration: none;
outline: 0;
color: var(--fg);
margin: 0;
padding: 0;
}
a:visited {
outline: 0;
color: var(--fg);
margin: 0;
padding: 0;
}
a:hover {
color: var(--fg);
transition: all 0.8s ease;
}
a:focus {
color: var(--fg);
transition: all 0.8s ease;
}
b {
font-family: var(--main-font);
font-weight: 800;
}
/* HEADER */
#header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: var(--accent);
padding: var(--main-size);
height: var(--main-size);
}
#top {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
width: 100%;
}
.icon-menu {
position: relative;
display: flex;
align-items: center;
width: var(--unit-size);
height: var(--unit-size);
cursor: pointer;
transition: all .5s ease-in-out;
}
.icon-menu label {
width: var(--unit-size);
height: 3px;
border-radius: 3px;
background: var(--bg1);
transition: all .5s ease-in-out;
}
.icon-menu label::before,
.icon-menu label::after {
content: '';
position: absolute;
width: var(--unit-size);
height: 3px;
border-radius: 3px;
background: var(--bg1);
transition: all .5s ease-in-out;
}
.icon-menu label::before {
transform: translateY(-6px);
}
.icon-menu label::after {
transform: translateY(6px);
}
#toggle:checked+div label{
width: 0;
}
#toggle:checked+div label::before {
transform: rotate(45deg);
}
#toggle:checked+div label::after {
transform: rotate(-45deg);
}
#instance {
order: 2;
}
#instance b {
margin: 0;
padding: 0;
vertical-align: middle;
margin-left: calc(0.2 * var(--unit-size));
color: var(--bg1);
}
.icon-logo {
margin: 0;
padding: 0;
display: inline-block;
width: var(--unit-size);
height: var(--unit-size);
stroke-width: 0;
stroke: currentColor;
fill: var(--bg1);
vertical-align: middle;
}
#left-panel {
order: 1;
}
/* left panel z-index fix */
.form {
position: relative;
z-index: 0;
}
#header {
z-index: 1;
}
/* styling radio buttons and checkboxes */
.content input[type="checkbox"] + label::before {
content: '';
position: relative;
display: inline-block;
margin-right: 5px;
width: var(--medium-size);
height: var(--medium-size);
background: var(--fg);
border-radius: 10%
}
.content input[type="checkbox"]:checked + label::before {
background: var(--accent);
border-radius: 10%;
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgdmVyc2lvbj0iMS4xIiAgIHdpZHRoPSIzMiIgICBoZWlnaHQ9IjMyIiAgIHZpZXdCb3g9IjAgMCAzMiAzMiIgICBpZD0ic3ZnNiIgICBzb2RpcG9kaTpkb2NuYW1lPSJjaGVja21hcmsuc3ZnIiAgIGlua3NjYXBlOnZlcnNpb249IjEuMCAoNDAzNWE0ZmI0OSwgMjAyMC0wNS0wMSkiPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGExMiI+ICAgIDxyZGY6UkRGPiAgICAgIDxjYzpXb3JrICAgICAgICAgcmRmOmFib3V0PSIiPiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+ICAgICAgICA8ZGM6dHlwZSAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4gICAgICA8L2NjOldvcms+ICAgIDwvcmRmOlJERj4gIDwvbWV0YWRhdGE+ICA8ZGVmcyAgICAgaWQ9ImRlZnMxMCIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIGlua3NjYXBlOmRvY3VtZW50LXJvdGF0aW9uPSIwIiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiICAgICBib3JkZXJvcGFjaXR5PSIxIiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIgICAgIGdyaWR0b2xlcmFuY2U9IjEwIiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM4MiIgICAgIGlkPSJuYW1lZHZpZXc4IiAgICAgc2hvd2dyaWQ9ImZhbHNlIiAgICAgaW5rc2NhcGU6em9vbT0iMjkuODc1IiAgICAgaW5rc2NhcGU6Y3g9IjE2LjA2Njk0NiIgICAgIGlua3NjYXBlOmN5PSIxNiIgICAgIGlua3NjYXBlOndpbmRvdy14PSIwIiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjMwIiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzYiIC8+ICA8dGl0bGUgICAgIGlkPSJ0aXRsZTIiPmNoZWNrbWFyazwvdGl0bGU+ICA8cGF0aCAgICAgZD0iTTI3IDRsLTE1IDE1LTctNy01IDUgMTIgMTIgMjAtMjB6IiAgICAgaWQ9InBhdGg0IiAgICAgc3R5bGU9ImZpbGw6IzJlMzQ0MDtmaWxsLW9wYWNpdHk6MSIgLz48L3N2Zz4=); background-position: center;
background-repeat: no-repeat;
background-size: 80%;
}
.content input[type="checkbox"]:focus + label::before,
.content input[type="checkbox"]:hover + label::before{
border-radius: 10%;
box-shadow: 0 0 8px var(--accent);
}
.content input[type="checkbox"] {
height: 1px;
width: 1px;
overflow: hidden;
}
.content input[type="radio"] + label::before {
content: '';
position: relative;
display: inline-block;
margin-right: 5px;
width: var(--medium-size);
height: var(--medium-size);
background: var(--fg);
border-radius: 50%
}
.content input[type="radio"]:checked + label::before {
background: var(--accent);
border-radius: 50%;
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wICg0MDM1YTRmYjQ5LCAyMDIwLTA1LTAxKSIgICBzb2RpcG9kaTpkb2NuYW1lPSJjaXJjbGUuc3ZnIiAgIGlkPSJzdmc0IiAgIHZlcnNpb249IjEuMSIgICBoZWlnaHQ9IjUwMCIgICB3aWR0aD0iNTAwIj4gIDxtZXRhZGF0YSAgICAgaWQ9Im1ldGFkYXRhMTAiPiAgICA8cmRmOlJERj4gICAgICA8Y2M6V29yayAgICAgICAgIHJkZjphYm91dD0iIj4gICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PiAgICAgICAgPGRjOnR5cGUgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+ICAgICAgPC9jYzpXb3JrPiAgICA8L3JkZjpSREY+ICA8L21ldGFkYXRhPiAgPGRlZnMgICAgIGlkPSJkZWZzOCIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjMwIiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiICAgICBpbmtzY2FwZTpjeT0iMjUwIiAgICAgaW5rc2NhcGU6Y3g9IjI1MS4wNDYwMyIgICAgIGlua3NjYXBlOnpvb209IjEuOTEyIiAgICAgc2hvd2dyaWQ9ImZhbHNlIiAgICAgaWQ9Im5hbWVkdmlldzYiICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzgyIiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAvPiAgPGNpcmNsZSAgICAgc3R5bGU9ImZpbGw6IzJlMzQ0MDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMzQ0MDtzdHJva2Utb3BhY2l0eTowIiAgICAgaWQ9ImNpcmNsZTIiICAgICBzdHJva2Utd2lkdGg9IjgiICAgICBzdHJva2U9IiMwMDAiICAgICBmaWxsPSIjZmZmIiAgICAgcj0iMjEwIiAgICAgY3k9IjI1MCIgICAgIGN4PSIyNTAiIC8+PC9zdmc+);
background-position: center;
background-repeat: no-repeat;
background-size: 50%;
fill: #2e3440;
}
.content input[type="radio"]:focus + label::before,
.content input[type="radio"]:hover + label::before{
border-radius: 50%;
box-shadow: 0 0 8px var(--accent);
}
.content input[type="radio"] {
position: absolute;
height: 1px;
width: 1px;
overflow: hidden;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
.create-notice button[type=submit] {
background: var(--bg1);
padding: 0.3em 1em;
color: var(--fg);
border-style: solid;
border-color: var(--accent);
border-radius: var(--small-size);
border-width: 2px;
font-family: 'Montserrat', sans-serif;
font-size: var(--small-size);
font-weight: 700;
}
.create-notice button[type=submit]:focus,
.create-notice button[type=submit]:hover {
border-radius: var(--small-size);
box-shadow: 0 0 8px var(--accent);
}
.avatar {
border-radius: 50%;
}

View File

@ -1,258 +0,0 @@
:root {
/* fonts */
--main-font: 'Montserrat', sans-serif;
--main-font: 'Open Sans', sans-serif;
/* font and margin sizes */
--main-size: 1.2em;
--medium-size: 0.7em;
--small-size: 0.65em;
--unit-size: 1em;
--side-margin: 2em;
--nav-size: 100%;
/* colours and shadows */
--fg: #eceff4;
--accent: #81a1c1;
--bg1: #2e3440;
--bg2: #3b4252;
--bg3: #434c5e;
--bg4: #4c566a;
--bg5: #d8dee9;
--shadow: 0px 0px 40px 0px rgba(46,52,64,0.95);
}
/* DEFAULTS */
body,
html {
background: var(--bg1);
background-attachment: fixed;
background-size: cover;
color: var(--fg);
font-family: var(--main-font);
font-size: var(--main-size);
margin: 0;
padding: 0;
}
ul {
text-decoration: none;
margin: 0;
padding: 0;
list-style: none;
}
li {
margin: 0;
padding: 0;
}
a:link {
text-decoration: none;
outline: 0;
color: var(--fg);
margin: 0;
padding: 0;
}
a:visited {
outline: 0;
color: var(--fg);
margin: 0;
padding: 0;
}
a:hover {
color: var(--fg);
transition: all 0.8s ease;
}
a:focus {
color: var(--fg);
transition: all 0.8s ease;
}
b {
font-family: var(--main-font);
font-weight: 800;
}
/* HEADER */
#header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: var(--accent);
padding: var(--main-size);
height: var(--main-size);
}
#top {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
width: 100%;
}
.icon-menu {
position: relative;
display: flex;
align-items: center;
width: var(--unit-size);
height: var(--unit-size);
cursor: pointer;
transition: all .5s ease-in-out;
}
.icon-menu label {
width: var(--unit-size);
height: 3px;
border-radius: 3px;
background: var(--bg1);
transition: all .5s ease-in-out;
}
.icon-menu label::before,
.icon-menu label::after {
content: '';
position: absolute;
width: var(--unit-size);
height: 3px;
border-radius: 3px;
background: var(--bg1);
transition: all .5s ease-in-out;
}
.icon-menu label::before {
transform: translateY(-6px);
}
.icon-menu label::after {
transform: translateY(6px);
}
#toggle:checked+div label{
width: 0;
}
#toggle:checked+div label::before {
transform: rotate(45deg);
}
#toggle:checked+div label::after {
transform: rotate(-45deg);
}
#instance {
order: 2;
}
#instance b {
margin: 0;
padding: 0;
vertical-align: middle;
margin-left: calc(0.2 * var(--unit-size));
color: var(--bg1);
}
.icon-logo {
margin: 0;
padding: 0;
display: inline-block;
width: var(--unit-size);
height: var(--unit-size);
stroke-width: 0;
stroke: currentColor;
fill: var(--bg1);
vertical-align: middle;
}
#left-panel {
order: 1;
}
/* left panel z-index fix */
.form {
position: relative;
z-index: 0;
}
#header {
z-index: 1;
}
/* styling radio buttons and checkboxes */
.content input[type="checkbox"] + label::before {
content: '';
position: relative;
display: inline-block;
margin-right: 5px;
width: var(--unit-size);
height: var(--unit-size);
background: var(--fg);
border-radius: 10%
}
.content input[type="checkbox"]:checked + label::before {
background: var(--accent);
border-radius: 10%;
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgdmVyc2lvbj0iMS4xIiAgIHdpZHRoPSIzMiIgICBoZWlnaHQ9IjMyIiAgIHZpZXdCb3g9IjAgMCAzMiAzMiIgICBpZD0ic3ZnNiIgICBzb2RpcG9kaTpkb2NuYW1lPSJjaGVja21hcmsuc3ZnIiAgIGlua3NjYXBlOnZlcnNpb249IjEuMCAoNDAzNWE0ZmI0OSwgMjAyMC0wNS0wMSkiPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGExMiI+ICAgIDxyZGY6UkRGPiAgICAgIDxjYzpXb3JrICAgICAgICAgcmRmOmFib3V0PSIiPiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+ICAgICAgICA8ZGM6dHlwZSAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4gICAgICA8L2NjOldvcms+ICAgIDwvcmRmOlJERj4gIDwvbWV0YWRhdGE+ICA8ZGVmcyAgICAgaWQ9ImRlZnMxMCIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIGlua3NjYXBlOmRvY3VtZW50LXJvdGF0aW9uPSIwIiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiICAgICBib3JkZXJvcGFjaXR5PSIxIiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIgICAgIGdyaWR0b2xlcmFuY2U9IjEwIiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM4MiIgICAgIGlkPSJuYW1lZHZpZXc4IiAgICAgc2hvd2dyaWQ9ImZhbHNlIiAgICAgaW5rc2NhcGU6em9vbT0iMjkuODc1IiAgICAgaW5rc2NhcGU6Y3g9IjE2LjA2Njk0NiIgICAgIGlua3NjYXBlOmN5PSIxNiIgICAgIGlua3NjYXBlOndpbmRvdy14PSIwIiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjMwIiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzYiIC8+ICA8dGl0bGUgICAgIGlkPSJ0aXRsZTIiPmNoZWNrbWFyazwvdGl0bGU+ICA8cGF0aCAgICAgZD0iTTI3IDRsLTE1IDE1LTctNy01IDUgMTIgMTIgMjAtMjB6IiAgICAgaWQ9InBhdGg0IiAgICAgc3R5bGU9ImZpbGw6IzJlMzQ0MDtmaWxsLW9wYWNpdHk6MSIgLz48L3N2Zz4=);
background-position: center;
background-repeat: no-repeat;
background-size: 80%;
}
.content input[type="checkbox"]:focus + label::before,
.content input[type="checkbox"]:hover + label::before{
border-radius: 10%;
box-shadow: 0 0 8px var(--accent);
}
.content input[type="checkbox"] {
height: 1px;
width: 1px;
overflow: hidden;
}
.content input[type="radio"] + label::before {
content: '';
position: relative;
display: inline-block;
margin-right: 5px;
width: var(--unit-size);
height: var(--unit-size);
background: var(--fg);
border-radius: 50%
}
.content input[type="radio"]:checked + label::before {
background: var(--accent);
border-radius: 50%;
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wICg0MDM1YTRmYjQ5LCAyMDIwLTA1LTAxKSIgICBzb2RpcG9kaTpkb2NuYW1lPSJjaXJjbGUuc3ZnIiAgIGlkPSJzdmc0IiAgIHZlcnNpb249IjEuMSIgICBoZWlnaHQ9IjUwMCIgICB3aWR0aD0iNTAwIj4gIDxtZXRhZGF0YSAgICAgaWQ9Im1ldGFkYXRhMTAiPiAgICA8cmRmOlJERj4gICAgICA8Y2M6V29yayAgICAgICAgIHJkZjphYm91dD0iIj4gICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PiAgICAgICAgPGRjOnR5cGUgICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+ICAgICAgPC9jYzpXb3JrPiAgICA8L3JkZjpSREY+ICA8L21ldGFkYXRhPiAgPGRlZnMgICAgIGlkPSJkZWZzOCIgLz4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjMwIiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiICAgICBpbmtzY2FwZTpjeT0iMjUwIiAgICAgaW5rc2NhcGU6Y3g9IjI1MS4wNDYwMyIgICAgIGlua3NjYXBlOnpvb209IjEuOTEyIiAgICAgc2hvd2dyaWQ9ImZhbHNlIiAgICAgaWQ9Im5hbWVkdmlldzYiICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzgyIiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAvPiAgPGNpcmNsZSAgICAgc3R5bGU9ImZpbGw6IzJlMzQ0MDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMzQ0MDtzdHJva2Utb3BhY2l0eTowIiAgICAgaWQ9ImNpcmNsZTIiICAgICBzdHJva2Utd2lkdGg9IjgiICAgICBzdHJva2U9IiMwMDAiICAgICBmaWxsPSIjZmZmIiAgICAgcj0iMjEwIiAgICAgY3k9IjI1MCIgICAgIGN4PSIyNTAiIC8+PC9zdmc+);
background-position: center;
background-repeat: no-repeat;
background-size: 50%;
fill: #2e3440;
}
.content input[type="radio"]:focus + label::before,
.content input[type="radio"]:hover + label::before{
border-radius: 50%;
box-shadow: 0 0 8px var(--accent);
}
.content input[type="radio"] {
position: absolute;
height: 1px;
width: 1px;
overflow: hidden;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
.create-notice button[type=submit] {
background: var(--bg1);
padding: 0.6em 1.3em;
color: var(--fg);
border-style: solid;
border-color: var(--accent);
border-radius: var(--unit-size);
border-width: 2px;
font-family: 'Montserrat', sans-serif;
font-size: var(--small-size);
font-weight: 700;
}
.create-notice button[type=submit]:focus,
.create-notice button[type=submit]:hover {
border-radius: var(--small-size);
box-shadow: 0 0 8px var(--accent);
}
.avatar {
border-radius: 50%;
}

View File

@ -1,44 +1,13 @@
.icon-avatar {
border-radius: 50%;
width: var(--main-size);
}
.icon-left {
position: fixed;
top: 0;
left: 0;
padding: calc(3 * var(--unit-size));
/* left panel z-index fix */
.form {
position: relative;
z-index: 0;
}
#header {
z-index: 1;
}
width: var(--main-size);
height: auto;
/* CHECKBOX TRICK */
.icon-menu label {
opacity: 0;
cursor: pointer
}
#toggle {
position: absolute;
z-index: 2;
cursor: pointer;
opacity: 0;
}
#toggle:checked+.navbar {
display: block;
left: 0;
top: 0;
transition: 0.3s ease;
}
#left-panel {
display: flex;
flex-direction: column;
left: 0;
width: calc(2 * var(--unit-size-w));
padding: var(--small-size);
box-sizing: border-box;
font-size: var(--medium-size);
background-image: linear-gradient(var(--bg1), transparent);
fill: var(--white);
stroke-width: 0;
vertical-align: middle;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,78 +1,13 @@
#right-panel {
display: flex;
flex-direction: column;
.icon-right {
position: fixed;
top: 0;
right: 0;
padding: calc(3 * var(--unit-size));
width: calc(2 * var(--unit-size-w));
padding: var(--small-size);
box-sizing: border-box;
font-size: var(--medium-size);
background-image: linear-gradient(var(--bg1), transparent);
}
.icon-attach {
width: var(--main-size);
height: var(--main-size);
font-size: var(--medium-size);
fill: var(--fg);
cursor: pointer;
}
height: auto;
#replyform {
margin: var(--small-size);
}
#replyform div {
display: inline-flex;
justify-content: flex-start;
width: 100%;
box-sizing: border-box;
}
#replyform div textarea {
width: 100%;
}
/* UNTOGGLED */
.arrow {
border: solid var(--fg);
border-width: 0 3px 3px 0;
display: none;
padding: 0.3em;
}
.right {
transform: rotate(135deg);
-webkit-transform: rotate(135deg);
}
#right-container {
right: 0;
top: 0;
transition: 0.3s ease;
}
.arrow label {
display: block;
cursor: pointer;
}
#toggle-right {
position: absolute;
z-index: 2;
cursor: pointer;
opacity: 0;
}
#toggle-right:not(:checked)+.arrow {
transform: rotate(135deg);
transition: 0.3s ease;
}
/* TOGGLED */
#toggle-right:checked~#right-container {
display: flex;
right: 0;
top: 0;
transition: 0.3s ease;
}
#toggle-right:checked+.arrow {
transform: rotate(-45deg);
transition: 0.3s ease;
fill: var(--white);
stroke-width: 0;
vertical-align: middle;
}

View File

@ -5,24 +5,21 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% endblock %}
<title>
{% block title %}{% endblock %}
</title>
{% block stylesheets %}
<link rel='stylesheet' type='text/css' href="{{ asset('assets/fonts/inter/inter.css') }}">
<link rel='stylesheet' type='text/css' href="{{ asset('assets/fonts/manrope/manrope.css') }}">
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base.css') }}"
media="screen and (min-width: 1300px)">
{# <link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base_mid.css') }}"#}
{# media="screen and (max-width: 1300px)">#}
{# <link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base_small.css') }}"#}
{# media="screen and (max-width: 750px)">#}
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base.css') }}">
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/reset.css') }}">
{% for stylesheet in show_stylesheets() %}
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/' ~ stylesheet) }}">
{% endfor %}
{% endblock %}
{% for arr in handle_event('ShowHeadElements', app.request) %}
{# Only one element, but has dynamic value, can't access it directly #}
{% for type, element in arr %}
@ -32,31 +29,29 @@
</head>
<body>
<div class="container">
{% block header %}
<div id='header'>
<div id='top'>
<nav id='instance'>
<a href="{{ path('main_public') }}">
{{ icon('logo', 'icon icon-logo') | raw }}
<h1> {{ config('site', 'name') }} </h1>
</a>
</nav>
<div id="panels">
{% block leftpanel %}
{% endblock leftpanel %}
{% block rightpanel %}
{% endblock rightpanel %}
</div>
</div>
</div>
<div id='header'>
<nav id='instance'>
<a href="{{ path('main_public') }}">
{{ icon('logo', 'icon icon-logo') | raw }}
<h1> {{ config('site', 'name') }} </h1>
</a>
</nav>
</div>
{% endblock header %}
{% block nav %}{% endblock %}
{% block body %}{% endblock %}
{% block javascripts %}{% endblock javascripts %}
</div>
<div class="container">
{% block leftpanel %}
{% endblock leftpanel %}
{% block rightpanel %}
{% endblock rightpanel %}
{% block nav %}{% endblock %}
{% block body %}{% endblock %}
{% block javascripts %}{% endblock javascripts %}
</div>
</body>
</html>

View File

@ -8,12 +8,7 @@
{% block stylesheets %}
{{ parent() }}
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/network/public.css') }}"
media="screen and (min-width: 1300px)">
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/network/public_mid.css') }}"
media="screen and (max-width: 1300px)">
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/network/public_small.css') }}"
media="screen and (max-width: 750px)">
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/network/public.css') }}">
{% endblock %}
{% block header %}
@ -27,7 +22,7 @@
{% block body %}
<div class="content">
<div class="main">
<div class="navigation">
<nav class='main-nav'>
<ul>
<li>
@ -62,19 +57,20 @@
{% endif %}
</ul>
</nav>
</div>
<div class="timeline">
<div class="notes">
{% if notes is defined and notes is not empty %}
{% for conversation in notes %}
{% include '/note/view.html.twig' with {'note': conversation['note'], 'have_user': have_user, 'replies': conversation['replies']} only %}
{% endfor %}
{% else %}
<h1>{% trans %}No notes here.{% endtrans %}</h1>
{% endif %}
</div>
<div class="timeline">
<div class="notes">
{% if notes is defined and notes is not empty %}
{% for conversation in notes %}
{% include '/note/view.html.twig' with {'note': conversation['note'], 'have_user': have_user, 'replies': conversation['replies']} only %}
{% endfor %}
{% else %}
<div id="empty-notes"><h1>{% trans %}No notes here.{% endtrans %}</h1></div>
{% endif %}
</div>
</div>
</div>
{% endblock body %}

View File

@ -1,94 +1,70 @@
<aside id='left-panel'>
<nav class='profile-nav'>
{% if app.user %}
<section class='profile'>
<section id="profile-links">
<a id="user-avatar" href="{{ path('settings_avatar') }}">
<img src='{{ user_avatar }}' alt="Your avatar." class="icon icon-avatar">
</a>
<span id="user-info">
<a id="user-nick" href="{{ path('settings_personal_info') }}">
<h2>{{ user_nickname }}</h2>
</a>
<div id="user-tags">
{% if user_tags %}
{% for tag in user_tags %}
<a href='#'> #{{ tag }}</a>
{% endfor %}
{% else %}
{{ '(No tags)' | trans }}
{% endif %}
</div>
</span>
</section>
<span id="stats">
<h2>{{ 'Followers' | trans }} {{ user_followers }}</h2>
<h2>{{ 'Followed' | trans }} {{ user_followed }}</h2>
</span>
{% for extra in profile_extras %}
{% include '/'~ extra.name ~ '/view.html.twig' with {'vars': extra.vars} only %}
{% endfor %}
</section>
<nav>
<a href='#'>Messages</a>
<a href="{{ path("replies", {'nickname' : user_nickname}) }}"
class='hover-effect {{ active("replies") }}'>Replies</a>
{% for link in handle_event('InsertLeftPanelLink', user_nickname) %}
{{ link | raw }}
{% endfor %}
<a href="{{ path('settings_personal_info') }}"
class='hover-effect {{ active('settings_') }}'>Settings</a>
<a href='{{ path('logout') }}'>Logout</a>
</nav>
{% else %}
<nav>
<a href="{{ path('login') }}" class='hover-effect {{ active('login') }}'>Login</a>
<a href="{{ path('register') }}">Register</a>
</nav>
{% endif %}
<div class="timeline-nav">
<nav>
<a href="{{ path('main_public') }}"
class='{{ active('main_public', 'main_all', "home_all") }}'>Timeline</a>
<hr>
<nav class='sec-nav'>
<a href="{{ path('main_public') }}"
class='{{ active('main_public') }}'>Public</a>
{% if user_nickname is defined %}
<a href="{{ path("home_all", {'nickname' : user_nickname}) }}"
class='{{ active("home_all") }}'>Home</a>
{% endif %}
<a href="{{ path('main_all') }}" class='hover-effect {{ active('main_all') }}'>Network</a>
{% if main_nav_tabs is defined %}
{% for tab in main_nav_tabs %}
<a href="{{ path(tab['route']) }}"
class='{{ active(tab['route']) }}'>{{ tab['title'] }}</a>
<details>
<summary>{{ icon('menu', 'icon icon-left') | raw }}</summary>
{% if app.user %}
<div id='left-panel'>
<div class='navbar'>
<div class="left-nav">
<div class='profile'>
{% for extra in profile_extras %}
{% include '/'~ extra.name ~ '/view.html.twig' with {'vars': extra.vars} only %}
{% endfor %}
{% endif %}
</nav>
</nav>
<a href="{{ path('settings_avatar') }}">
<img src='{{ user_avatar }}' alt="Your avatar." class="icon icon-avatar">
</a>
<a href="{{ path('settings_personal_info') }}">
<div class="info">
<b id="nick">{{ user_nickname }}</b>
<div class="tags">
{% if user_tags %}
{% for tag in user_tags %}
<a href='#'><i> #{{ tag }} </i></a>
{% endfor %}
{% else %}
<i> {{ '(No tags)' | trans }} </i>
{% endif %}
</div>
<div class="stats">
<span> <b> {{ user_followers }} </b> {{ 'Followers' | trans }} </span>
<span> <b> {{ user_followed }} </b> {{ 'Followed' | trans }} </span>
</div>
</div>
</a>
</div>
<a href='#'>Messages</a>
<a href="{{ path("replies", {'nickname' : user_nickname}) }}"
class='hover-effect {{ active("replies") }}'>Replies</a>
{% for link in handle_event('InsertLeftPanelLink', user_nickname) %}
{{ link | raw }}
{% endfor %}
<a href="{{ path('settings_personal_info') }}"
class='hover-effect {{ active('settings_') }}'>Settings</a>
<a href='{{ path('logout') }}'>Logout</a>
</div>
<div class="footer">
<a href="{{ path('doc_faq') }}" class='hover-effect {{ active('doc_faq') }}'>FAQ</a>
<a href="{{ path('doc_tos') }}" class='hover-effect {{ active('doc_tos') }}'>TOS</a>
<a href="{{ path('doc_privacy') }}" class='hover-effect {{ active('doc_privacy') }}'>Privacy</a>
<a href="{{ path('doc_source') }}" class='hover-effect {{ active('doc_source') }}'>Source</a>
<a href="{{ path('doc_version') }}" class='hover-effect {{ active('doc_version') }}'>Version</a>
</div>
</div>
</div>
{% else %}
<div id='left-panel'>
<div class='navbar'>
<div class="left-nav">
<a href="{{ path('login') }}" class='hover-effect {{ active('login') }}'>Login</a>
<a href="{{ path('register') }}">Register</a>
</div>
<div class="footer">
<a href="{{ path('doc_faq') }}" class='hover-effect {{ active('doc_faq') }}'>FAQ</a>
<a href="{{ path('doc_tos') }}" class='hover-effect {{ active('doc_tos') }}'>TOS</a>
<a href="{{ path('doc_privacy') }}" class='hover-effect {{ active('doc_privacy') }}'>Privacy</a>
<a href="{{ path('doc_source') }}" class='hover-effect {{ active('doc_source') }}'>Source</a>
<a href="{{ path('doc_version') }}" class='hover-effect {{ active('doc_version') }}'>Version</a>
</div>
</div>
</div>
{% endif %}
</details>
</nav>
<div class="footer">
<a href="{{ path('doc_faq') }}" class='hover-effect {{ active('doc_faq') }}'>FAQ</a>
<a href="{{ path('doc_tos') }}" class='hover-effect {{ active('doc_tos') }}'>TOS</a>
<a href="{{ path('doc_privacy') }}" class='hover-effect {{ active('doc_privacy') }}'>Privacy</a>
<a href="{{ path('doc_source') }}" class='hover-effect {{ active('doc_source') }}'>Source</a>
<a href="{{ path('doc_version') }}" class='hover-effect {{ active('doc_version') }}'>Version</a>
</div>
</aside>

View File

@ -1,61 +1,60 @@
<div id="right-panel">
<input type="checkbox" id="toggle-right" class="larger">
<div class="arrow right">
<label for="toggle-right" id='right-panel'></label>
</div>
<div id='right-container'>
{% if post_form is defined %}
{{ form_start(post_form) }}
<div class="create-notice">
<div class="target">
<div class="target-top">
{{ form_label(post_form.to) }}
</div>
<div class="target-bot">
{{ form_widget(post_form.to) }}
</div>
</div>
<div class="create-right">
<div class="create-top-right">
<div class="scope">
{{ form_row(post_form.visibility) }}
<details>
<summary>{{ icon('menu', 'icon icon-right') | raw }}</summary>
<div id="right-panel">
<div id='right-container'>
{% if post_form is defined %}
{{ form_start(post_form) }}
<div class="create-notice">
<div class="target">
<div class="target-top">
{{ form_label(post_form.to) }}
</div>
<div class="tabs">
{% for tab in tabs %}
<a href={{ path(tab['href']) }}>{{ tab['title'] }}</a>
{% endfor %}
<div class="target-bot">
{{ form_widget(post_form.to) }}
</div>
</div>
<div class="input-wrapper">
<div class="content-input">
{{ form_row(post_form.content) }}
<div class="create-right">
<div class="create-top-right">
<div class="scope">
{{ form_row(post_form.visibility) }}
</div>
<div class="tabs">
{% for tab in tabs %}
<a href={{ path(tab['href']) }}>{{ tab['title'] }}</a>
{% endfor %}
</div>
</div>
</div>
<div class="notice-options">
<div class="attachments">
{{ form_widget(post_form.attachments) }}
<label for="{{ post_form.attachments.vars.id }}">
{{ icon('attach', 'icon icon-attach') | raw }}
</label>
<div class="input-wrapper">
<div class="content-input">
{{ form_row(post_form.content) }}
</div>
</div>
<div class="post">
{{ form_row(post_form.post) }}
<div class="notice-options">
<div class="attachments">
{{ form_widget(post_form.attachments) }}
<label for="{{ post_form.attachments.vars.id }}">
{{ icon('attach', 'icon icon-attach') | raw }}
</label>
</div>
<div class="post">
{{ form_row(post_form.post) }}
</div>
</div>
</div>
</div>
</div>
{{ form_end(post_form) }}
{% endif %}
{{ form_end(post_form) }}
{% endif %}
{% set current_path = app.request.get('_route') %}
{% if right_panel_vars is defined %}
{% for block in handle_event('AppendRightPanelBlock', {'path': current_path, 'vars': right_panel_vars}) %}
{{ block | raw }}
{% endfor %}
{% else %}
{% for block in handle_event('AppendRightPanelBlock', {'path': current_path}) %}
{{ block | raw }}
{% endfor %}
{% endif %}
{% set current_path = app.request.get('_route') %}
{% if right_panel_vars is defined %}
{% for block in handle_event('AppendRightPanelBlock', {'path': current_path, 'vars': right_panel_vars}) %}
{{ block | raw }}
{% endfor %}
{% else %}
{% for block in handle_event('AppendRightPanelBlock', {'path': current_path}) %}
{{ block | raw }}
{% endfor %}
{% endif %}
</div>
</div>
</div>
</details>