├── CNAME
├── _config.yml
├── assets
├── images
│ ├── favicon.ico
│ └── og-image.png
├── scripts
│ └── index.js
└── css
│ └── style.css
├── .gitmodules
├── README.md
├── index.md
└── _layouts
└── default.html
/CNAME:
--------------------------------------------------------------------------------
1 | manifestotech.org
2 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | title: Manifesto Tech
2 | highlighter: none
3 | data_dir: _manifesto
--------------------------------------------------------------------------------
/assets/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/manifestotech/manifesto-site/HEAD/assets/images/favicon.ico
--------------------------------------------------------------------------------
/assets/images/og-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/manifestotech/manifesto-site/HEAD/assets/images/og-image.png
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "_manifesto"]
2 | path = _manifesto
3 | url = https://github.com/manifestotech/manifestotech.git
4 | branch = main
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Site do Manifesto Tech
2 |
3 | Deploy no GitHub Pages usando Jekyll.
4 |
5 | Os dados do Manifesto em si vêm do repo https://github.com/manifestotech/manifestotech via um submódulo.
6 |
--------------------------------------------------------------------------------
/assets/scripts/index.js:
--------------------------------------------------------------------------------
1 | (function main(){
2 | const container = document.querySelector(".manifest__assigners ul")
3 | const btn = document.querySelector(".show-more__btn")
4 |
5 | const buttonMessages = Array.of('data-show-less', 'data-show-more').map( attribute => btn.getAttribute(attribute) )
6 |
7 | const toggleAttribute = (element, attribute) => {
8 |
9 | const hasAttribute = element.hasAttribute(attribute)
10 |
11 | if( hasAttribute ){
12 | element.removeAttribute(attribute)
13 | } else {
14 | element.setAttribute(attribute, true)
15 | }
16 |
17 | return !(hasAttribute)
18 | }
19 |
20 | const toggleIsOpen = (element) => element.classList.toggle("--open")
21 |
22 | const toggleMessage = (element, hasAttribute, [firstMessage, secondMessage] ) => {
23 | element.textContent = (hasAttribute) ? firstMessage : secondMessage
24 | }
25 |
26 | const toggleButton = (button, isExpanded) => {
27 | toggleMessage(button, isExpanded, buttonMessages)
28 | toggleIsOpen(button)
29 | }
30 |
31 | function handleManifestButtonClick(){
32 | const value = toggleAttribute(container, 'data-expanded')
33 |
34 | toggleButton(btn, value)
35 | toggleIsOpen(container)
36 | }
37 |
38 |
39 | btn.addEventListener("click", handleManifestButtonClick)
40 | })()
--------------------------------------------------------------------------------
/index.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
{% include_relative _manifesto/manifesto.md %}
5 |
6 |
7 |
8 | {% include_relative _manifesto/principios.md %}
9 |
10 |
11 |
12 |
Signatários
13 |
14 |
15 | {% for signatario in site.data.signatarios %}
16 | -
17 | {{ signatario.nome }}
18 | {{ signatario.cargo }}
19 | {% if signatario.implementacao %}
20 | Entenda as Ações
21 | {% endif %}
22 |
23 | {% endfor %}
24 |
25 |
26 |
27 |
28 |
29 | {% include_relative _manifesto/perguntas_frequentes.md %}
30 |
31 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | ManifestoTech.org
18 |
19 |
20 |
21 |
22 |
29 | {{ content }}
30 |
31 |
32 |
33 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/assets/css/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding: 0;
3 | margin: 0;
4 | position: relative;
5 | counter-reset: faq;
6 | }
7 |
8 | * {
9 | box-sizing: border-box;
10 | }
11 |
12 | details summary {
13 | list-style: none;
14 | cursor: pointer;
15 | }
16 |
17 | :root {
18 | --primary-color: #282828;
19 | --secondary: #444444;
20 | }
21 |
22 | .container-wrapper {
23 | position: relative;
24 | max-width: 1200px;
25 | margin: 0 auto;
26 | padding: 0 1rem 0 2.5rem;
27 | }
28 |
29 | .manifest__definition > p:last-child,
30 | .manifest__principles .container-wrapper > h3 {
31 | margin-left: -25px;
32 | padding-left: 25px;
33 | border-left: 1px solid #282828;
34 | }
35 |
36 | .manifest .container-wrapper {
37 | font-family: "Space Mono", monospace;
38 | }
39 |
40 | .manifest__title-decoration,
41 | .manifest__principles h3 > strong {
42 | background-color: #444444;
43 | color: white;
44 | }
45 |
46 | .header {
47 | padding-top: 3.125rem;
48 | position: relative;
49 | }
50 |
51 | .header .container-wrapper {
52 | padding-left: 1.125rem;
53 | }
54 |
55 | .header .container-wrapper > .header__decoration {
56 | display: none;
57 | }
58 |
59 | .header__title {
60 | font-size: 1.875rem;
61 | font-family: "Lexend", sans-serif;
62 | font-weight: bold;
63 | text-transform: uppercase;
64 | line-height: 3.125rem;
65 |
66 | color: #282828;
67 | }
68 |
69 | .header__title-decoration {
70 | display: block;
71 | color: white;
72 | }
73 |
74 | .header__decoration {
75 | display: block;
76 | height: 60px;
77 | min-width: 150px;
78 | bottom: -8px;
79 | background-color: #282828;
80 | position: absolute;
81 | z-index: -1;
82 | }
83 |
84 | .header__decoration::after {
85 | content: "";
86 | display: block;
87 | height: 2px;
88 | min-width: 150px;
89 | background-color: #282828;
90 | position: absolute;
91 | left: 300px;
92 | top: 50%;
93 | transform: translate(-100px, -50%);
94 | }
95 |
96 | .header::before {
97 | content: "";
98 | display: block;
99 |
100 | position: absolute;
101 | right: 0;
102 | top: 50%;
103 |
104 | height: 280px;
105 | width: 280px;
106 | clip-path: circle(50% at 100% 50%);
107 |
108 | background-color: #f4f4f4;
109 | z-index: -1;
110 | }
111 |
112 | .header__title .manifest__title-decoration {
113 | display: block;
114 | text-align: center;
115 | width: 30%;
116 | max-width: 18.75rem;
117 | }
118 |
119 | .manifest__definition {
120 | margin-top: 1.875rem;
121 | }
122 |
123 | .manifest__definition > h2{
124 | color: #444444;
125 | margin-bottom: 2rem;
126 | }
127 |
128 | .manifest__definition > p{
129 | font-size: 1.125rem;
130 | margin-bottom: 2.3125rem;
131 | }
132 |
133 | .manifest__definition > ul {
134 | padding: 0;
135 | margin-bottom: 3rem;
136 | list-style-type: disclosure-closed;
137 | }
138 |
139 | .manifest__definition > ul li {
140 | font-size: 1.25rem;
141 | color: #444444;
142 | line-height: 1.875rem;
143 | margin-left: -15px;
144 | padding-left: 15px;
145 | margin-bottom: 1.5rem;
146 | }
147 |
148 | .manifest__definition > p:last-child {
149 | position: relative;
150 | color: #575757;
151 | margin-bottom: 0;
152 | padding-bottom: 3.75rem;
153 | }
154 |
155 | .manifest__principles {
156 | position: relative;
157 | background-color: #f4f4f4;
158 | padding-bottom: 2.85rem;
159 | }
160 |
161 | .manifest__principles .container-wrapper > h3 {
162 | margin-top: 0;
163 | padding-top: 2.5rem;
164 | line-height: 2.5rem;
165 | font-size: 1.875rem;
166 | font-weight: bold;
167 | color: #444444;
168 | max-width: 250px;
169 | }
170 |
171 | .manifest__title-decoration,
172 | .manifest__principles h3 > strong {
173 | padding: 0.25rem .65rem;
174 | margin-left: -10px;
175 | margin-top: 0.5rem;
176 | line-height: 3.75rem;
177 | }
178 |
179 | .manifest__principles .container-wrapper > ul {
180 | padding: 0;
181 | list-style-type: disclosure-closed;
182 | }
183 |
184 | .manifest__principles .container-wrapper > ul li {
185 | margin-bottom: 1.25rem;
186 | line-height: 1.5rem;
187 | margin-left: -15px;
188 | padding-left: 15px;
189 | color: #575757;
190 | }
191 |
192 | .manifest__assigners {
193 | margin-bottom: 3.75rem;
194 | }
195 |
196 | .manifest__assigners .container-wrapper > h3 {
197 | font-size: 1.25rem;
198 | line-height: 1.875rem;
199 | color: #575757;
200 | padding-top: 1rem;
201 | margin-bottom: 2.1857rem;
202 | max-width: 200px;
203 | }
204 |
205 | .manifest__assigners .container-wrapper > ul {
206 | list-style: none;
207 | padding: 0;
208 | position: relative;
209 | height: 36rem;
210 | overflow-y: hidden;
211 | }
212 |
213 | .manifest__assigners .container-wrapper > ul::before {
214 | content: '';
215 | display: block;
216 | position: absolute;
217 | bottom: 0;
218 | left: 0;
219 | height: 100px;
220 | width: 100%;
221 | background-image: linear-gradient(transparent 0%, white 20%);
222 |
223 | }
224 |
225 | .manifest__assigners .container-wrapper > ul.--open {
226 | transition: height 2s ease-in-out;
227 | height: auto;
228 | }
229 |
230 | .manifest__assigners .container-wrapper > ul.--open::before {
231 | content: unset;
232 | }
233 |
234 | .manifest__assigners .container-wrapper > ul li {
235 | margin-bottom: 1.875rem;
236 | }
237 |
238 | .manifest__assigners .container-wrapper > ul li {
239 | font-size: 0.8rem;
240 | display: grid;
241 | grid-template-rows: repeat(3, 1fr);
242 | color: #575757;
243 | }
244 |
245 | .manifest__assigners .container-wrapper > ul li strong {
246 | font-size: 0.95rem;
247 | }
248 |
249 | .manifest__assigners .container-wrapper > ul li a {
250 | align-self: center;
251 | margin-top: .5rem;
252 | padding: .25rem .5rem;
253 | width: 50%;
254 | transition: background-color .25s ease-in;
255 | background-color: #575757;
256 | border-radius: 5px;
257 | color: white;
258 | text-decoration: unset;
259 | text-align: center;
260 | }
261 |
262 | .show-more__btn {
263 | color: #575757;
264 | position: relative;
265 | border: 2px solid;
266 | border-radius: 0;
267 | cursor: pointer;
268 | padding: .85rem 3.25rem .85rem 1.25rem;
269 | background-color: transparent;
270 | font-family: "Space Mono", sans-serif;
271 | font-weight: bold;
272 | }
273 |
274 | .show-more__btn::after {
275 | content: "+";
276 | font-size: 1.25rem;
277 | position: absolute;
278 | top: 50%;
279 | right: 20px;
280 | transform: translateY(-50%);
281 | }
282 |
283 | .show-more__btn:hover {
284 | color: black;
285 | }
286 |
287 | .show-more__btn.--open::after {
288 | content: "-";
289 | }
290 |
291 | .manifest__assigners .container-wrapper > ul li a:hover {
292 | background-color: black;
293 | }
294 |
295 | .faq {
296 | padding-bottom: 10rem;
297 | }
298 |
299 | .faq .container-wrapper {
300 | padding-left: 0;
301 | padding-right: 0;
302 | }
303 |
304 | .faq details {
305 | margin-left: 2rem;
306 | margin-right: 2rem;
307 | }
308 |
309 | .faq .container-wrapper > h3{
310 | display: inline-block;
311 | text-align: right;
312 | text-transform: uppercase;
313 | color: #444444;
314 | font-size: 2.1875rem;
315 | background-color: #f4f4f4;
316 | padding: 1.25rem 1.25rem 1.25rem 4.375rem;
317 | margin-bottom: 2.5rem;
318 | }
319 |
320 | .faq details {
321 | border-top: 1px solid #f1efef;
322 | }
323 |
324 | .faq details p {
325 | margin: 0 0 2.5rem;
326 | }
327 |
328 | .faq details:last-child {
329 | border-bottom: 1px solid #f1efef;
330 | }
331 |
332 | .faq summary {
333 | display: flex;
334 | position: relative;
335 | padding-right: 3rem;
336 | color: #444444;
337 | font-weight: bold;
338 | padding: 1.7rem 1rem 1.7rem 0;
339 | }
340 |
341 | .faq summary::before {
342 | counter-increment: faq;
343 | content: counter(faq) ".";
344 | margin-right: 8px;
345 | }
346 |
347 | .faq summary::after {
348 | content: "+";
349 | font-size: 2rem;
350 | font-weight: normal;
351 | color: #8e8e8e;
352 | position: absolute;
353 | top: 50%;
354 | right: 0;
355 | transform: translateY(-50%);
356 | }
357 |
358 | .faq details[open] summary {
359 | padding-bottom: 1rem;
360 | }
361 |
362 | .faq details[open] summary::after {
363 | content: "-";
364 | }
365 |
366 | .faq {
367 | color: #575757;
368 | }
369 |
370 | .faq summary::marker {
371 | content: '';
372 | }
373 |
374 | @media (min-width: 450px){
375 | .manifest__assigners .container-wrapper > ul {
376 | display: grid;
377 | grid-template-columns: repeat(auto-fit, minmax(100px, 180px));
378 | gap: 1.875rem;
379 | }
380 |
381 | .manifest__assigners .container-wrapper > ul::before {
382 | background-image: linear-gradient(transparent 10%, white 50%);
383 | }
384 |
385 | .manifest__assigners .container-wrapper > ul::before {
386 | height: 50px;
387 | }
388 |
389 | .manifest__assigners .container-wrapper > ul li{
390 | margin-bottom: unset;
391 | }
392 |
393 | .manifest__assigners .container-wrapper > ul li a{
394 | width: auto;
395 | }
396 |
397 | .show-more__btn {
398 | margin-top: 1.65rem;
399 | }
400 | }
401 |
402 | @media (min-width: 1000px) {
403 |
404 | .manifest__definition > p:last-child,
405 | .manifest__principles .container-wrapper > h3 {
406 | margin-left: unset;
407 | padding-left: unset;
408 | border: unset;
409 | }
410 |
411 | .container-wrapper {
412 | padding-left: 16rem;
413 | padding-right: 5rem;
414 | }
415 |
416 | .faq details {
417 | margin-left: 16rem;
418 | margin-right: 5rem;
419 | }
420 |
421 | .header__title {
422 | font-size: 4.375rem;
423 | line-height: 4.375rem;
424 | }
425 |
426 | .header .container-wrapper > .header__decoration {
427 | display: block;
428 | min-width: 220px;
429 | height: 80px;
430 | left: -2px;
431 | }
432 |
433 | .header .container-wrapper > .header__decoration::after {
434 | min-width: 500px;
435 | left: 358px;
436 | }
437 |
438 | .header > .header__decoration {
439 | display: none;
440 | }
441 |
442 | .manifest__title,
443 | .manifest__definition > p{
444 | font-size: 1.125rem;
445 | }
446 |
447 | .manifest__definition > p:last-child {
448 | max-width: 760px;
449 | font-size: 1.125rem;
450 | }
451 |
452 | .manifest__definition > p:last-child::after {
453 | left: -80px;
454 | width: 2px;
455 | height: 450px;
456 | }
457 |
458 | .manifest__principles .container-wrapper::after {
459 | content: "";
460 | display: block;
461 | width: 2px;
462 | height: 400px;
463 | background-color: #444444;
464 | position: absolute;
465 | top: -60px;
466 | left: 100px;
467 | }
468 |
469 | .faq .container-wrapper > h3{
470 | margin-left: 6.25rem;
471 | padding-right: 3rem;
472 | padding-left: 155px;
473 | text-align: left;
474 | }
475 |
476 | .manifest__principles .container-wrapper > h3 {
477 | font-size: 2.1875rem;
478 | line-height: 3.5rem;
479 | margin-bottom: 3.5rem;
480 | margin-top: 0;
481 | padding-top: 2.1875rem;
482 | max-width: 450px;
483 | }
484 |
485 | .manifest__definition {
486 | max-width: 760px;
487 | }
488 |
489 | .manifest__principles .container-wrapper > ul {
490 | max-width: 850px;
491 | }
492 |
493 | .manifest__principles .container-wrapper > ul li {
494 | font-size: 1.125rem;
495 | margin-bottom: 2.5rem;
496 | }
497 |
498 | .manifest__assigners {
499 | position: relative;
500 | }
501 |
502 | .manifest__assigners::after {
503 | content: "";
504 | position: absolute;
505 | top: 50%;
506 | transform: translateY(-50%);
507 | left: 0;
508 | background-color: #282828;
509 | height: 1px;
510 | min-width: 180px;
511 | }
512 |
513 | .manifest__assigners .container-wrapper > h3 {
514 | margin-top: 3.75rem;
515 | margin-bottom: 5rem;
516 | font-size: 1.5rem;
517 | }
518 |
519 | .manifest__assigners .container-wrapper > ul {
520 | max-width: 900px;
521 | }
522 |
523 | .faq details {
524 | font-size: 1.125rem;
525 | }
526 | }
527 |
528 | @media (min-width: 1200px){
529 | .manifest__assigners::after{
530 | width: 15%;
531 | }
532 | }
533 |
534 | @media (min-width: 1440px){
535 | .manifest__assigners::after {
536 | width: 23%;
537 | }
538 | }
539 |
540 |
541 | @media (min-width: 2000px) {
542 | .header::before{
543 | content: unset;
544 | }
545 |
546 | .header .container-wrapper::after {
547 | content: "";
548 | display: block;
549 | position: absolute;
550 | right: -100px;
551 | top: -50px;
552 | height: 280px;
553 | width: 280px;
554 | clip-path: circle(50% at 50% 50% );
555 | background-color: #f4f4f4;
556 | }
557 | }
558 |
--------------------------------------------------------------------------------