├── .gitignore
├── LICENSE
├── README.md
├── index.html
└── src
├── css
├── index.css
├── shared
│ ├── index.css
│ └── modules
│ │ ├── background.css
│ │ ├── border.css
│ │ ├── button.css
│ │ ├── flex.css
│ │ ├── interactivity.css
│ │ ├── layout.css
│ │ ├── sizing.css
│ │ ├── spacing.css
│ │ ├── table.css
│ │ └── typhography.css
└── ui
│ ├── index.css
│ └── modules
│ ├── chip.css
│ ├── modal.css
│ └── youtubeCard.css
├── images
├── readme
│ ├── laptop_with_youtube_logo.png
│ └── youtube_classroom_preview.png
└── status
│ └── not_found.png
└── js
└── index.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 next-step
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | level1 - 나만의 유튜브 강의실
5 | 자바스크립트와 외부 API를 이용해 구현 하는 나만의 유튜브 강의실
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 🖥️ 데모 링크
16 |
17 |
18 | ## 🔥 Projects!
19 |
20 |
21 |
22 |
23 |
24 | ## 🎯 step1 검색 기능 UI
25 |
26 | - [ ] [유튜브 검색 API](https://developers.google.com/youtube/v3/getting-started?hl=ko)를 통해서, 내가 추가로 보고 싶은 영상들을 검색할 수 있다.
27 | - [ ] 검색 시 엔터키를 눌렀을 때와 마우스로 검색 버튼을 눌렀을 때 검색 동작이 이루어진다.
28 | - [ ] 로딩컴포넌트: 데이터를 불러오는 중일 때, 현재 데이터를 불러오는 중임을 skeleton UI로 보여준다.
29 | - [ ] 검색 결과가 없는 경우 결과 없음 이미지를 추가하여, 사용자에게 메시지를 보여준다.
30 | - [ ] 검색 결과 없음 이미지는 `src/images/status/not_found.png` 경로에 있다.
31 | - [ ] 최초 검색결과는 10개까지만 보여준다. 더 많은 데이터는 스크롤을 내릴 때 추가로 불러온다.
32 | - 검색 결과 화면에서 유저가 브라우저 스크롤 바를 끝까지 이동시켰을 경우, 그다음 10개 아이템을 추가로 api요청하여 불러온다.
33 | - [ ] 내가 검색한 영상들의 json 데이터를 `저장`할 수 있다. (실제 저장이 아닌 영상 id를 Web Storage에 저장). 단 이미 저장된 경우는 저장 버튼이 보이지 않게 한다.
34 | - [ ] 저장 가능한 최대 동영상의 갯수는 100개이다.
35 | - [ ] 검색 모달에 다시 접근했을 때 가장 마지막에 검색한 키워드로 검색한 결과를 보여준다.
36 | - [ ] 최근 검색 키워드를 3개까지 화면상에 검색창 하단에 보여준다.
37 |
38 | ## 🎯🎯 step2 강의실 관리 기능과 SPA
39 |
40 | ### 🚏 1) 라우팅 기능
41 | - [ ] **Browser History Api**를 이용하여 SPA처럼 라우팅을 적용한다.
42 | - [ ] routing은 `볼 영상(to-watch)`, `본 영상(watched)`, `좋아요 한 영상(liked)` 로 관리한다.
43 |
44 | ### 📚 2) 강의실 관리
45 | - [ ] 가장 처음에는 저장된 영상이 없음으로, 비어있다는 것을 사용자에게 알려주는 상태를 보여준다.
46 | - [ ] 이후 페이지를 방문했을 때 기본 메인 화면은 내가 **볼 영상**들의 리스트를 보여준다.
47 | - [ ] 영상 카드의 이모지 버튼을 클릭하여 아래와 같은 상태 변경이 가능해야 한다.
48 | - [ ] ✅ 본 영상으로 체크
49 | - [ ] 🗑️ 버튼으로 저장된 리스트에서 삭제할 수 있습니다. (삭제 시 사용자에게 정말 삭제할 것인지 물어봅니다.)
50 | - [ ] 본 영상, 볼 영상 버튼을 눌러 필터링 할 수 있다.
51 | - [ ] 👍 좋아요 버튼을 누른 데이터만 필터링해서 보여줄 수 있는 메뉴를 만든다.
52 | - [ ] 👍 좋아요 버튼을 누른 경우, 로컬에서 데이터를 변경한다.
53 | - [ ] 👍 좋아요 버튼을 다시 클릭해서 해지할 수 있어야 한다.
54 |
55 | ### 👋🏼 3) 사용자 경험
56 | - [ ] 사용자가 버튼을 클릭했을 때 해당 행위가 정상적으로 동작하거나, 실패하였음을 `snackbar`를 통해 보여준다.
57 |
58 | ## 🎯🎯 step3 with E2E Test
59 |
60 | 아래 요구 사항들에 대한 E2E 테스트코드를 작성한다.
61 | ```js
62 | describe("유튜브 검색 테스트", () => {
63 | before(() => {});
64 |
65 | it("저장된 영상이 없을 경우, 비어있다는 것을 사용자에게 알려주는 상태를 보여준다.", () => {});
66 |
67 | it("동영상 검색 버튼을 클릭 시 모달을 화면에 띄운다.", () => {});
68 |
69 | it("검색 결과가 없는 경우 결과 없음 이미지와 메세지를 화면에 띄운다.", () => {});
70 |
71 | it(`최초 검색결과는 10개까지만 보여준다.`, () => {});
72 |
73 | it(`스크롤을 끝까지 내렸을 때, 추가로 10개의 검색 결과를 가지고 온다.`, () => {});
74 |
75 | it("동영상의 저장 버튼을 누르면, 동영상의 id를 localStorage에 저장한다.", () => {});
76 |
77 | it("동영상이 이미 저장된 경우에는 저장버튼을 누를 수 없게 한다.", () => {});
78 |
79 | it(`최근 검색 키워드를 3개 까지 화면상의 검색창 하단에 보여준다.`, () => {});
80 |
81 | it("검색 모달에 다시 접근했을 때 가장 마지막에 검색한 키워드로 검색한 결과를 보여준다.", () => {});
82 |
83 | it('저장된 영상 중 "볼 영상"이 있는 경우, 기본 메인 화면은 "볼 영상" 리스트를 보여준다.', () => {});
84 |
85 | it('✅ 버튼을 누르면 "본 영상"으로 상태가 변경된다.', () => {});
86 |
87 | it('👍 버튼을 누르면 "좋아요를 누른 영상" 탭에서 영상을 확인할 수 있다.', () => {});
88 |
89 | it("🗑️ 버튼을 누르면 사용자에게 정말 삭제할 것인지 물어본 후 저장된 리스트에서 해당 영상을 삭제한다.", () => {});
90 |
91 | it(`저장된 동영상의 개수가 100개일 때, 동영상 저장을 할 수 없다.`, () => {});
92 | });
93 |
94 | ```
95 |
96 |
97 |
98 |
99 | ## ⚙️ Before Started
100 |
101 | #### 로컬에서 서버 띄워서 손쉽게 static resources 변경 및 확인하는 방법
102 |
103 | 로컬에서 웹서버를 띄워 html, css, js 등을 실시간으로 손쉽게 테스트해 볼 수 있습니다. 이를 위해서는 우선 npm이 설치되어 있어야 합니다. 구글에 `npm install` 이란 키워드로 각자의 운영체제에 맞게끔 npm을 설치해주세요. 이후 아래의 명령어를 통해 실시간으로 웹페이지를 테스트해볼 수 있습니다.
104 |
105 | ```
106 | npm install -g live-server
107 | ```
108 |
109 | 실행은 아래의 커맨드로 할 수 있습니다.
110 |
111 | ```
112 | live-server 폴더명
113 | ```
114 |
115 |
116 |
117 | ## 👏🏼 Contributing
118 |
119 | 만약 미션 수행 중에 개선사항이 보인다면, 언제든 자유롭게 PR을 보내주세요.
120 |
121 |
122 |
123 | ## 🐞 Bug Report
124 |
125 | 버그를 발견한다면, [Issues](https://github.com/next-step/js-youtube-classroom/issues)에 등록해주세요.
126 |
127 |
128 |
129 | ## 📝 License
130 |
131 | This project is [MIT](https://github.com/next-step/js-youtube-classroom/blob/main/LICENSE) licensed.
132 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 👩🏻💻 유튜브 강의실
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 👩🏻💻 나만의 유튜브 강의실 👨🏻💻
15 |
16 | 👁️ 볼 영상
17 | ✅ 본 영상
18 |
19 | 🔍 동영상 검색
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | VIDEO
35 |
36 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
72 |
76 |
82 |
83 |
84 | 저장된 영상 갯수: 50개
85 |
86 |
87 |
88 |
89 | VIDEO
97 |
98 |
99 |
아두이노 무드등
100 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
--------------------------------------------------------------------------------
/src/css/index.css:
--------------------------------------------------------------------------------
1 | @import "./shared/index.css";
2 | @import "./ui/index.css";
3 |
4 | html,
5 | body {
6 | margin: 0;
7 | height: 100%;
8 | font-size: 16px;
9 | }
10 |
11 | #app {
12 | max-width: 960px;
13 | margin: 0 auto;
14 | }
15 |
16 | a {
17 | text-decoration: none;
18 | }
19 |
20 | .opacity-hover {
21 | opacity: 0.3;
22 | }
23 |
24 | .opacity-hover:hover {
25 | opacity: 1;
26 | }
27 |
--------------------------------------------------------------------------------
/src/css/shared/index.css:
--------------------------------------------------------------------------------
1 | @import "modules/button.css";
2 | @import "modules/layout.css";
3 | @import "modules/sizing.css";
4 | @import "modules/typhography.css";
5 | @import "modules/spacing.css";
6 | @import "modules/interactivity.css";
7 | @import "modules/border.css";
8 | @import "modules/flex.css";
9 | @import "modules/background.css";
10 |
--------------------------------------------------------------------------------
/src/css/shared/modules/background.css:
--------------------------------------------------------------------------------
1 | /* Background Color */
2 | .bg-transparent {
3 | background-color: transparent;
4 | }
5 |
6 | .bg-current {
7 | background-color: currentColor;
8 | }
9 |
10 | .bg-black {
11 | background-color: rgb(0, 0, 0);
12 | }
13 |
14 | .bg-white {
15 | background-color: rgb(255, 255, 255);
16 | }
17 |
18 | .bg-gray-50 {
19 | background-color: rgb(249, 250, 251);
20 | }
21 |
22 | .bg-gray-100 {
23 | background-color: rgb(243, 244, 246);
24 | }
25 |
26 | .bg-gray-200 {
27 | background-color: rgb(229, 231, 235);
28 | }
29 |
30 | .bg-gray-300 {
31 | background-color: rgb(209, 213, 219);
32 | }
33 |
34 | .bg-gray-400 {
35 | background-color: rgb(156, 163, 175);
36 | }
37 |
38 | .bg-gray-500 {
39 | background-color: rgb(107, 114, 128);
40 | }
41 |
42 | .bg-gray-600 {
43 | background-color: rgb(75, 85, 99);
44 | }
45 |
46 | .bg-gray-700 {
47 | background-color: rgb(55, 65, 81);
48 | }
49 |
50 | .bg-gray-800 {
51 | background-color: rgb(31, 41, 55);
52 | }
53 |
54 | .bg-gray-900 {
55 | background-color: rgb(17, 24, 39);
56 | }
57 |
58 | .bg-red-50 {
59 | background-color: rgb(254, 242, 242);
60 | }
61 |
62 | .bg-red-100 {
63 | background-color: rgb(254, 226, 226);
64 | }
65 |
66 | .bg-red-200 {
67 | background-color: rgb(254, 202, 202);
68 | }
69 |
70 | .bg-red-300 {
71 | background-color: rgb(252, 165, 165);
72 | }
73 |
74 | .bg-red-400 {
75 | background-color: rgb(248, 113, 113);
76 | }
77 |
78 | .bg-red-500 {
79 | background-color: rgb(239, 68, 68);
80 | }
81 |
82 | .bg-red-600 {
83 | background-color: rgb(220, 38, 38);
84 | }
85 |
86 | .bg-red-700 {
87 | background-color: rgb(185, 28, 28);
88 | }
89 |
90 | .bg-red-800 {
91 | background-color: rgb(153, 27, 27);
92 | }
93 |
94 | .bg-red-900 {
95 | background-color: rgb(127, 29, 29);
96 | }
97 |
98 | .bg-yellow-50 {
99 | background-color: rgb(255, 251, 235);
100 | }
101 |
102 | .bg-yellow-100 {
103 | background-color: rgb(254, 243, 199);
104 | }
105 |
106 | .bg-yellow-200 {
107 | background-color: rgb(253, 230, 138);
108 | }
109 |
110 | .bg-yellow-300 {
111 | background-color: rgb(252, 211, 77);
112 | }
113 |
114 | .bg-yellow-400 {
115 | background-color: rgb(251, 191, 36);
116 | }
117 |
118 | .bg-yellow-500 {
119 | background-color: rgb(245, 158, 11);
120 | }
121 |
122 | .bg-yellow-600 {
123 | background-color: rgb(217, 119, 6);
124 | }
125 |
126 | .bg-yellow-700 {
127 | background-color: rgb(180, 83, 9);
128 | }
129 |
130 | .bg-yellow-800 {
131 | background-color: rgb(146, 64, 14);
132 | }
133 |
134 | .bg-yellow-900 {
135 | background-color: rgb(120, 53, 15);
136 | }
137 |
138 | .bg-green-50 {
139 | background-color: rgb(236, 253, 245);
140 | }
141 |
142 | .bg-green-100 {
143 | background-color: rgb(209, 250, 229);
144 | }
145 |
146 | .bg-green-200 {
147 | background-color: rgb(167, 243, 208);
148 | }
149 |
150 | .bg-green-300 {
151 | background-color: rgb(110, 231, 183);
152 | }
153 |
154 | .bg-green-400 {
155 | background-color: rgb(52, 211, 153);
156 | }
157 |
158 | .bg-green-500 {
159 | background-color: rgb(16, 185, 129);
160 | }
161 |
162 | .bg-green-600 {
163 | background-color: rgb(5, 150, 105);
164 | }
165 |
166 | .bg-green-700 {
167 | background-color: rgb(4, 120, 87);
168 | }
169 |
170 | .bg-green-800 {
171 | background-color: rgb(6, 95, 70);
172 | }
173 |
174 | .bg-green-900 {
175 | background-color: rgb(6, 78, 59);
176 | }
177 |
178 | .bg-blue-50 {
179 | background-color: rgb(239, 246, 255);
180 | }
181 |
182 | .bg-blue-100 {
183 | background-color: rgb(219, 234, 254);
184 | }
185 |
186 | .bg-blue-200 {
187 | background-color: rgb(191, 219, 254);
188 | }
189 |
190 | .bg-blue-300 {
191 | background-color: rgb(147, 197, 253);
192 | }
193 |
194 | .bg-blue-400 {
195 | background-color: rgb(96, 165, 250);
196 | }
197 |
198 | .bg-blue-500 {
199 | background-color: rgb(59, 130, 246);
200 | }
201 |
202 | .bg-blue-600 {
203 | background-color: rgb(37, 99, 235);
204 | }
205 |
206 | .bg-blue-700 {
207 | background-color: rgb(29, 78, 216);
208 | }
209 |
210 | .bg-blue-800 {
211 | background-color: rgb(30, 64, 175);
212 | }
213 |
214 | .bg-blue-900 {
215 | background-color: rgb(30, 58, 138);
216 | }
217 |
218 | .bg-cyan-50 {
219 | background-color: rgb(224, 246, 249);
220 | }
221 |
222 | .bg-cyan-100 {
223 | background-color: rgb(179, 234, 242);
224 | }
225 |
226 | .bg-cyan-200 {
227 | background-color: rgb(129, 222, 234);
228 | }
229 |
230 | .bg-cyan-300 {
231 | background-color: rgb(78, 207, 224);
232 | }
233 |
234 | .bg-cyan-400 {
235 | background-color: rgb(39, 198, 218);
236 | }
237 |
238 | .bg-cyan-500 {
239 | background-color: rgb(0, 188, 212);
240 | }
241 |
242 | .bg-cyan-600 {
243 | background-color: rgb(5, 172, 193);
244 | }
245 |
246 | .bg-cyan-700 {
247 | background-color: rgb(0, 152, 167);
248 | }
249 |
250 | .bg-cyan-800 {
251 | background-color: rgb(2, 131, 143);
252 | }
253 |
254 | .bg-cyan-900 {
255 | background-color: rgb(5, 95, 100);
256 | }
257 |
258 | .bg-indigo-50 {
259 | background-color: rgb(238, 242, 255);
260 | }
261 |
262 | .bg-indigo-100 {
263 | background-color: rgb(224, 231, 255);
264 | }
265 |
266 | .bg-indigo-200 {
267 | background-color: rgb(199, 210, 254);
268 | }
269 |
270 | .bg-indigo-300 {
271 | background-color: rgb(165, 180, 252);
272 | }
273 |
274 | .bg-indigo-400 {
275 | background-color: rgb(129, 140, 248);
276 | }
277 |
278 | .bg-indigo-500 {
279 | background-color: rgb(99, 102, 241);
280 | }
281 |
282 | .bg-indigo-600 {
283 | background-color: rgb(79, 70, 229);
284 | }
285 |
286 | .bg-indigo-700 {
287 | background-color: rgb(67, 56, 202);
288 | }
289 |
290 | .bg-indigo-800 {
291 | background-color: rgb(55, 48, 163);
292 | }
293 |
294 | .bg-indigo-900 {
295 | background-color: rgb(49, 46, 129);
296 | }
297 |
298 | .bg-purple-50 {
299 | background-color: rgb(245, 243, 255);
300 | }
301 |
302 | .bg-purple-100 {
303 | background-color: rgb(237, 233, 254);
304 | }
305 |
306 | .bg-purple-200 {
307 | background-color: rgb(221, 214, 254);
308 | }
309 |
310 | .bg-purple-300 {
311 | background-color: rgb(196, 181, 253);
312 | }
313 |
314 | .bg-purple-400 {
315 | background-color: rgb(167, 139, 250);
316 | }
317 |
318 | .bg-purple-500 {
319 | background-color: rgb(139, 92, 246);
320 | }
321 |
322 | .bg-purple-600 {
323 | background-color: rgb(124, 58, 237);
324 | }
325 |
326 | .bg-purple-700 {
327 | background-color: rgb(109, 40, 217);
328 | }
329 |
330 | .bg-purple-800 {
331 | background-color: rgb(91, 33, 182);
332 | }
333 |
334 | .bg-purple-900 {
335 | background-color: rgb(76, 29, 149);
336 | }
337 |
338 | .bg-pink-50 {
339 | background-color: rgb(253, 242, 248);
340 | }
341 |
342 | .bg-pink-100 {
343 | background-color: rgb(252, 231, 243);
344 | }
345 |
346 | .bg-pink-200 {
347 | background-color: rgb(251, 207, 232);
348 | }
349 |
350 | .bg-pink-300 {
351 | background-color: rgb(249, 168, 212);
352 | }
353 |
354 | .bg-pink-400 {
355 | background-color: rgb(244, 114, 182);
356 | }
357 |
358 | .bg-pink-500 {
359 | background-color: rgb(236, 72, 153);
360 | }
361 |
362 | .bg-pink-600 {
363 | background-color: rgb(219, 39, 119);
364 | }
365 |
366 | .bg-pink-700 {
367 | background-color: rgb(190, 24, 93);
368 | }
369 |
370 | .bg-pink-800 {
371 | background-color: rgb(157, 23, 77);
372 | }
373 |
374 | .bg-pink-900 {
375 | background-color: rgb(131, 24, 67);
376 | }
377 |
--------------------------------------------------------------------------------
/src/css/shared/modules/border.css:
--------------------------------------------------------------------------------
1 | /* Border Width */
2 | .border-0 {
3 | border-width: 0px;
4 | }
5 |
6 | .border-2 {
7 | border-width: 2px;
8 | }
9 |
10 | .border-4 {
11 | border-width: 4px;
12 | }
13 |
14 | .border-8 {
15 | border-width: 8px;
16 | }
17 |
18 | .border {
19 | border-width: 1px;
20 | }
21 |
22 | .border-t-0 {
23 | border-top-width: 0px;
24 | }
25 |
26 | .border-r-0 {
27 | border-right-width: 0px;
28 | }
29 |
30 | .border-b-0 {
31 | border-bottom-width: 0px;
32 | }
33 |
34 | .border-l-0 {
35 | border-left-width: 0px;
36 | }
37 |
38 | .border-t-2 {
39 | border-top-width: 2px;
40 | }
41 |
42 | .border-r-2 {
43 | border-right-width: 2px;
44 | }
45 |
46 | .border-b-2 {
47 | border-bottom-width: 2px;
48 | }
49 |
50 | .border-l-2 {
51 | border-left-width: 2px;
52 | }
53 |
54 | .border-t-4 {
55 | border-top-width: 4px;
56 | }
57 |
58 | .border-r-4 {
59 | border-right-width: 4px;
60 | }
61 |
62 | .border-b-4 {
63 | border-bottom-width: 4px;
64 | }
65 |
66 | .border-l-4 {
67 | border-left-width: 4px;
68 | }
69 |
70 | .border-t-8 {
71 | border-top-width: 8px;
72 | }
73 |
74 | .border-r-8 {
75 | border-right-width: 8px;
76 | }
77 |
78 | .border-b-8 {
79 | border-bottom-width: 8px;
80 | }
81 |
82 | .border-l-8 {
83 | border-left-width: 8px;
84 | }
85 |
86 | .border-t {
87 | border-top-width: 1px;
88 | }
89 |
90 | .border-r {
91 | border-right-width: 1px;
92 | }
93 |
94 | .border-b {
95 | border-bottom-width: 1px;
96 | }
97 |
98 | .border-l {
99 | border-left-width: 1px;
100 | }
101 |
102 | /* Border Radius */
103 | .rounded-none {
104 | border-radius: 0px;
105 | }
106 |
107 | .rounded-sm {
108 | border-radius: 0.125rem;
109 | }
110 |
111 | rounded {
112 | border-radius: 0.25rem;
113 | }
114 |
115 | .rounded-md {
116 | border-radius: 0.375rem;
117 | }
118 |
119 | .rounded-lg {
120 | border-radius: 0.5rem;
121 | }
122 |
123 | .rounded-xl {
124 | border-radius: 0.75rem;
125 | }
126 |
127 | .rounded-2xl {
128 | border-radius: 1rem;
129 | }
130 |
131 | .rounded-3xl {
132 | border-radius: 1.5rem;
133 | }
134 |
135 | .rounded-full {
136 | border-radius: 9999px;
137 | }
138 |
139 | .rounded-t-none {
140 | border-top-left-radius: 0px;
141 | border-top-right-radius: 0px;
142 | }
143 |
144 | .rounded-r-none {
145 | border-top-right-radius: 0px;
146 | border-bottom-right-radius: 0px;
147 | }
148 |
149 | .rounded-b-none {
150 | border-bottom-right-radius: 0px;
151 | border-bottom-left-radius: 0px;
152 | }
153 |
154 | .rounded-l-none {
155 | border-top-left-radius: 0px;
156 | border-bottom-left-radius: 0px;
157 | }
158 |
159 | .rounded-t-sm {
160 | border-top-left-radius: 0.125rem;
161 | border-top-right-radius: 0.125rem;
162 | }
163 |
164 | .rounded-r-sm {
165 | border-top-right-radius: 0.125rem;
166 | border-bottom-right-radius: 0.125rem;
167 | }
168 |
169 | .rounded-b-sm {
170 | border-bottom-right-radius: 0.125rem;
171 | border-bottom-left-radius: 0.125rem;
172 | }
173 |
174 | .rounded-l-sm {
175 | border-top-left-radius: 0.125rem;
176 | border-bottom-left-radius: 0.125rem;
177 | }
178 |
179 | .rounded-t {
180 | border-top-left-radius: 0.25rem;
181 | border-top-right-radius: 0.25rem;
182 | }
183 |
184 | .rounded-r {
185 | border-top-right-radius: 0.25rem;
186 | border-bottom-right-radius: 0.25rem;
187 | }
188 |
189 | .rounded-b {
190 | border-bottom-right-radius: 0.25rem;
191 | border-bottom-left-radius: 0.25rem;
192 | }
193 |
194 | .rounded-l {
195 | border-top-left-radius: 0.25rem;
196 | border-bottom-left-radius: 0.25rem;
197 | }
198 |
199 | .rounded-t-md {
200 | border-top-left-radius: 0.375rem;
201 | border-top-right-radius: 0.375rem;
202 | }
203 |
204 | .rounded-r-md {
205 | border-top-right-radius: 0.375rem;
206 | border-bottom-right-radius: 0.375rem;
207 | }
208 |
209 | .rounded-b-md {
210 | border-bottom-right-radius: 0.375rem;
211 | border-bottom-left-radius: 0.375rem;
212 | }
213 |
214 | .rounded-l-md {
215 | border-top-left-radius: 0.375rem;
216 | border-bottom-left-radius: 0.375rem;
217 | }
218 |
219 | .rounded-t-lg {
220 | border-top-left-radius: 0.5rem;
221 | border-top-right-radius: 0.5rem;
222 | }
223 |
224 | .rounded-r-lg {
225 | border-top-right-radius: 0.5rem;
226 | border-bottom-right-radius: 0.5rem;
227 | }
228 |
229 | .rounded-b-lg {
230 | border-bottom-right-radius: 0.5rem;
231 | border-bottom-left-radius: 0.5rem;
232 | }
233 |
234 | .rounded-l-lg {
235 | border-top-left-radius: 0.5rem;
236 | border-bottom-left-radius: 0.5rem;
237 | }
238 |
239 | .rounded-t-xl {
240 | border-top-left-radius: 0.75rem;
241 | border-top-right-radius: 0.75rem;
242 | }
243 |
244 | .rounded-r-xl {
245 | border-top-right-radius: 0.75rem;
246 | border-bottom-right-radius: 0.75rem;
247 | }
248 |
249 | .rounded-b-xl {
250 | border-bottom-right-radius: 0.75rem;
251 | border-bottom-left-radius: 0.75rem;
252 | }
253 |
254 | .rounded-l-xl {
255 | border-top-left-radius: 0.75rem;
256 | border-bottom-left-radius: 0.75rem;
257 | }
258 |
259 | .rounded-t-2xl {
260 | border-top-left-radius: 1rem;
261 | border-top-right-radius: 1rem;
262 | }
263 |
264 | .rounded-r-2xl {
265 | border-top-right-radius: 1rem;
266 | border-bottom-right-radius: 1rem;
267 | }
268 |
269 | .rounded-b-2xl {
270 | border-bottom-right-radius: 1rem;
271 | border-bottom-left-radius: 1rem;
272 | }
273 |
274 | .rounded-l-2xl {
275 | border-top-left-radius: 1rem;
276 | border-bottom-left-radius: 1rem;
277 | }
278 |
279 | .rounded-t-3xl {
280 | border-top-left-radius: 1.5rem;
281 | border-top-right-radius: 1.5rem;
282 | }
283 |
284 | .rounded-r-3xl {
285 | border-top-right-radius: 1.5rem;
286 | border-bottom-right-radius: 1.5rem;
287 | }
288 |
289 | .rounded-b-3xl {
290 | border-bottom-right-radius: 1.5rem;
291 | border-bottom-left-radius: 1.5rem;
292 | }
293 |
294 | .rounded-l-3xl {
295 | border-top-left-radius: 1.5rem;
296 | border-bottom-left-radius: 1.5rem;
297 | }
298 |
299 | .rounded-t-full {
300 | border-top-left-radius: 9999px;
301 | border-top-right-radius: 9999px;
302 | }
303 |
304 | .rounded-r-full {
305 | border-top-right-radius: 9999px;
306 | border-bottom-right-radius: 9999px;
307 | }
308 |
309 | .rounded-b-full {
310 | border-bottom-right-radius: 9999px;
311 | border-bottom-left-radius: 9999px;
312 | }
313 |
314 | .rounded-l-full {
315 | border-top-left-radius: 9999px;
316 | border-bottom-left-radius: 9999px;
317 | }
318 |
319 | .rounded-tl-none {
320 | border-top-left-radius: 0px;
321 | }
322 |
323 | .rounded-tr-none {
324 | border-top-right-radius: 0px;
325 | }
326 |
327 | .rounded-br-none {
328 | border-bottom-right-radius: 0px;
329 | }
330 |
331 | .rounded-bl-none {
332 | border-bottom-left-radius: 0px;
333 | }
334 |
335 | .rounded-tl-sm {
336 | border-top-left-radius: 0.125rem;
337 | }
338 |
339 | .rounded-tr-sm {
340 | border-top-right-radius: 0.125rem;
341 | }
342 |
343 | .rounded-br-sm {
344 | border-bottom-right-radius: 0.125rem;
345 | }
346 |
347 | .rounded-bl-sm {
348 | border-bottom-left-radius: 0.125rem;
349 | }
350 |
351 | .rounded-tl {
352 | border-top-left-radius: 0.25rem;
353 | }
354 |
355 | .rounded-tr {
356 | border-top-right-radius: 0.25rem;
357 | }
358 |
359 | .rounded-br {
360 | border-bottom-right-radius: 0.25rem;
361 | }
362 |
363 | .rounded-bl {
364 | border-bottom-left-radius: 0.25rem;
365 | }
366 |
367 | .rounded-tl-md {
368 | border-top-left-radius: 0.375rem;
369 | }
370 |
371 | .rounded-tr-md {
372 | border-top-right-radius: 0.375rem;
373 | }
374 |
375 | .rounded-br-md {
376 | border-bottom-right-radius: 0.375rem;
377 | }
378 |
379 | .rounded-bl-md {
380 | border-bottom-left-radius: 0.375rem;
381 | }
382 |
383 | .rounded-tl-lg {
384 | border-top-left-radius: 0.5rem;
385 | }
386 |
387 | .rounded-tr-lg {
388 | border-top-right-radius: 0.5rem;
389 | }
390 |
391 | .rounded-br-lg {
392 | border-bottom-right-radius: 0.5rem;
393 | }
394 |
395 | .rounded-bl-lg {
396 | border-bottom-left-radius: 0.5rem;
397 | }
398 |
399 | .rounded-tl-xl {
400 | border-top-left-radius: 0.75rem;
401 | }
402 |
403 | .rounded-tr-xl {
404 | border-top-right-radius: 0.75rem;
405 | }
406 |
407 | .rounded-br-xl {
408 | border-bottom-right-radius: 0.75rem;
409 | }
410 |
411 | .rounded-bl-xl {
412 | border-bottom-left-radius: 0.75rem;
413 | }
414 |
415 | .rounded-tl-2xl {
416 | border-top-left-radius: 1rem;
417 | }
418 |
419 | .rounded-tr-2xl {
420 | border-top-right-radius: 1rem;
421 | }
422 |
423 | .rounded-br-2xl {
424 | border-bottom-right-radius: 1rem;
425 | }
426 |
427 | .rounded-bl-2xl {
428 | border-bottom-left-radius: 1rem;
429 | }
430 |
431 | .rounded-tl-3xl {
432 | border-top-left-radius: 1.5rem;
433 | }
434 |
435 | .rounded-tr-3xl {
436 | border-top-right-radius: 1.5rem;
437 | }
438 |
439 | .rounded-br-3xl {
440 | border-bottom-right-radius: 1.5rem;
441 | }
442 |
443 | .rounded-bl-3xl {
444 | border-bottom-left-radius: 1.5rem;
445 | }
446 |
447 | .rounded-tl-full {
448 | border-top-left-radius: 9999px;
449 | }
450 |
451 | .rounded-tr-full {
452 | border-top-right-radius: 9999px;
453 | }
454 |
455 | .rounded-br-full {
456 | border-bottom-right-radius: 9999px;
457 | }
458 |
459 | .rounded-bl-full {
460 | border-bottom-left-radius: 9999px;
461 | }
462 |
463 | .border-black {
464 | border-color: black;
465 | }
466 |
--------------------------------------------------------------------------------
/src/css/shared/modules/button.css:
--------------------------------------------------------------------------------
1 | .btn {
2 | height: 36px;
3 | min-width: 64px;
4 | padding: 0 16px;
5 | border-radius: 4px;
6 | outline: 0;
7 | border-style: none;
8 | cursor: pointer;
9 | }
10 |
--------------------------------------------------------------------------------
/src/css/shared/modules/flex.css:
--------------------------------------------------------------------------------
1 | /* Flex Direction */
2 | .flex-row {
3 | flex-direction: row;
4 | }
5 |
6 | .flex-row-reverse {
7 | flex-direction: row-reverse;
8 | }
9 |
10 | .flex-col {
11 | flex-direction: column;
12 | }
13 |
14 | .flex-col-reverse {
15 | flex-direction: column-reverse;
16 | }
17 |
18 | /* Flex Wrap */
19 | .flex-wrap {
20 | flex-wrap: wrap;
21 | }
22 |
23 | .flex-wrap-reverse {
24 | flex-wrap: wrap-reverse;
25 | }
26 |
27 | .flex-nowrap {
28 | flex-wrap: nowrap;
29 | }
30 |
31 | /* Flex */
32 | .flex-1 {
33 | flex: 1 1 0%;
34 | }
35 |
36 | .flex-auto {
37 | flex: 1 1 auto;
38 | }
39 |
40 | .flex-initial {
41 | flex: 0 1 auto;
42 | }
43 |
44 | .flex-none {
45 | flex: none;
46 | }
47 |
48 | /* Flex Grow */
49 | .flex-grow-0 {
50 | flex-grow: 0;
51 | }
52 |
53 | .flex-grow {
54 | flex-grow: 1;
55 | }
56 |
57 | /* Flex Shrink */
58 | .flex-shrink-0 {
59 | flex-shrink: 0;
60 | }
61 |
62 | .flex-shrink {
63 | flex-shrink: 1;
64 | }
65 |
66 | /* Order */
67 | .order-1 {
68 | order: 1;
69 | }
70 |
71 | .order-2 {
72 | order: 2;
73 | }
74 |
75 | .order-3 {
76 | order: 3;
77 | }
78 |
79 | .order-4 {
80 | order: 4;
81 | }
82 |
83 | .order-5 {
84 | order: 5;
85 | }
86 |
87 | .order-6 {
88 | order: 6;
89 | }
90 |
91 | .order-7 {
92 | order: 7;
93 | }
94 |
95 | .order-8 {
96 | order: 8;
97 | }
98 |
99 | .order-9 {
100 | order: 9;
101 | }
102 |
103 | .order-10 {
104 | order: 10;
105 | }
106 |
107 | .order-11 {
108 | order: 11;
109 | }
110 |
111 | .order-12 {
112 | order: 12;
113 | }
114 |
115 | .order-first {
116 | order: -9999;
117 | }
118 |
119 | .order-last {
120 | order: 9999;
121 | }
122 |
123 | .order-none {
124 | order: 0;
125 | }
126 |
--------------------------------------------------------------------------------
/src/css/shared/modules/interactivity.css:
--------------------------------------------------------------------------------
1 | /* Cursor */
2 | .cursor-auto {
3 | cursor: auto;
4 | }
5 |
6 | .cursor-default {
7 | cursor: default;
8 | }
9 |
10 | .cursor-pointer {
11 | cursor: pointer;
12 | }
13 |
14 | .cursor-wait {
15 | cursor: wait;
16 | }
17 |
18 | .cursor-text {
19 | cursor: text;
20 | }
21 |
22 | .cursor-move {
23 | cursor: move;
24 | }
25 |
26 | .cursor-help {
27 | cursor: help;
28 | }
29 |
30 | .cursor-not-allowed {
31 | cursor: not-allowed;
32 | }
33 |
--------------------------------------------------------------------------------
/src/css/shared/modules/layout.css:
--------------------------------------------------------------------------------
1 | /* Layout - Position */
2 | .relative {
3 | position: relative;
4 | }
5 |
6 | .absolute {
7 | position: absolute;
8 | }
9 |
10 | .fixed {
11 | position: fixed;
12 | }
13 |
14 | /* Layout - Display */
15 | .d-flex {
16 | display: flex;
17 | }
18 |
19 | .d-block {
20 | display: block;
21 | }
22 |
23 | .d-inline {
24 | display: inline;
25 | }
26 |
27 | .d-inline-block {
28 | display: inline-block;
29 | }
30 |
31 | /* Layout - Top / Right / Bottom / Left */
32 | .mt-2 {
33 | margin-top: 8px;
34 | }
35 |
36 | .mt-3 {
37 | margin-top: 12px;
38 | }
39 |
40 | .mt-4 {
41 | margin-top: 16px;
42 | }
43 |
44 | .mt-5 {
45 | margin-top: 20px;
46 | }
47 |
48 | .mr-2 {
49 | margin-right: 8px;
50 | }
51 |
52 | /* Box Alignment - Justify Content*/
53 | .justify-start {
54 | justify-content: flex-start;
55 | }
56 |
57 | .justify-end {
58 | justify-content: flex-end;
59 | }
60 |
61 | .justify-center {
62 | justify-content: center;
63 | }
64 |
65 | .justify-between {
66 | justify-content: space-between;
67 | }
68 |
69 | .justify-around {
70 | justify-content: space-around;
71 | }
72 |
73 | .justify-evenly {
74 | justify-content: space-evenly;
75 | }
76 |
77 | /* Box Alignment - Align Items*/
78 | .items-start {
79 | align-items: flex-start;
80 | }
81 |
82 | .items-end {
83 | align-items: flex-end;
84 | }
85 |
86 | .items-center {
87 | align-items: center;
88 | }
89 |
90 | .items-baseline {
91 | align-items: baseline;
92 | }
93 |
94 | .items-stretch {
95 | align-items: stretch;
96 | }
97 |
98 | /* Box Alignment - Align Content*/
99 | .content-center {
100 | align-content: center;
101 | }
102 |
103 | .content-start {
104 | align-content: flex-start;
105 | }
106 |
107 | .content-end {
108 | align-content: flex-end;
109 | }
110 |
111 | .content-between {
112 | align-content: space-between;
113 | }
114 |
115 | .content-around {
116 | align-content: space-around;
117 | }
118 |
119 | .content-evenly {
120 | align-content: space-around;
121 | }
122 |
--------------------------------------------------------------------------------
/src/css/shared/modules/sizing.css:
--------------------------------------------------------------------------------
1 | /* Sizing - Width */
2 | .w-100 {
3 | width: 100%;
4 | }
5 |
--------------------------------------------------------------------------------
/src/css/shared/modules/spacing.css:
--------------------------------------------------------------------------------
1 | /* Margin */
2 | .m-0 {
3 | margin: 0px;
4 | }
5 |
6 | .m-1 {
7 | margin: 0.25rem;
8 | }
9 |
10 | .m-2 {
11 | margin: 0.5rem;
12 | }
13 |
14 | .m-3 {
15 | margin: 0.75rem;
16 | }
17 |
18 | .m-4 {
19 | margin: 1rem;
20 | }
21 |
22 | .m-5 {
23 | margin: 1.25rem;
24 | }
25 |
26 | .m-6 {
27 | margin: 1.5rem;
28 | }
29 |
30 | .m-7 {
31 | margin: 1.75rem;
32 | }
33 |
34 | .m-8 {
35 | margin: 2rem;
36 | }
37 |
38 | .m-9 {
39 | margin: 2.25rem;
40 | }
41 |
42 | .m-10 {
43 | margin: 2.5rem;
44 | }
45 |
46 | .m-11 {
47 | margin: 2.75rem;
48 | }
49 |
50 | .m-12 {
51 | margin: 3rem;
52 | }
53 |
54 | .m-14 {
55 | margin: 3.5rem;
56 | }
57 |
58 | .m-16 {
59 | margin: 4rem;
60 | }
61 |
62 | .m-20 {
63 | margin: 5rem;
64 | }
65 |
66 | .m-24 {
67 | margin: 6rem;
68 | }
69 |
70 | .m-28 {
71 | margin: 7rem;
72 | }
73 |
74 | .m-32 {
75 | margin: 8rem;
76 | }
77 |
78 | .m-36 {
79 | margin: 9rem;
80 | }
81 |
82 | .m-40 {
83 | margin: 10rem;
84 | }
85 |
86 | .m-44 {
87 | margin: 11rem;
88 | }
89 |
90 | .m-48 {
91 | margin: 12rem;
92 | }
93 |
94 | .m-52 {
95 | margin: 13rem;
96 | }
97 |
98 | .m-56 {
99 | margin: 14rem;
100 | }
101 |
102 | .m-60 {
103 | margin: 15rem;
104 | }
105 |
106 | .m-64 {
107 | margin: 16rem;
108 | }
109 |
110 | .m-72 {
111 | margin: 18rem;
112 | }
113 |
114 | .m-80 {
115 | margin: 20rem;
116 | }
117 |
118 | .m-96 {
119 | margin: 24rem;
120 | }
121 |
122 | .m-auto {
123 | margin: auto;
124 | }
125 |
126 | .m-px {
127 | margin: 1px;
128 | }
129 |
130 | .-m-0 {
131 | margin: 0px;
132 | }
133 |
134 | .-m-1 {
135 | margin: -0.25rem;
136 | }
137 |
138 | .-m-2 {
139 | margin: -0.5rem;
140 | }
141 |
142 | .-m-3 {
143 | margin: -0.75rem;
144 | }
145 |
146 | .-m-4 {
147 | margin: -1rem;
148 | }
149 |
150 | .-m-5 {
151 | margin: -1.25rem;
152 | }
153 |
154 | .-m-6 {
155 | margin: -1.5rem;
156 | }
157 |
158 | .-m-7 {
159 | margin: -1.75rem;
160 | }
161 |
162 | .-m-8 {
163 | margin: -2rem;
164 | }
165 |
166 | .-m-9 {
167 | margin: -2.25rem;
168 | }
169 |
170 | .-m-10 {
171 | margin: -2.5rem;
172 | }
173 |
174 | .-m-11 {
175 | margin: -2.75rem;
176 | }
177 |
178 | .-m-12 {
179 | margin: -3rem;
180 | }
181 |
182 | .-m-14 {
183 | margin: -3.5rem;
184 | }
185 |
186 | .-m-16 {
187 | margin: -4rem;
188 | }
189 |
190 | .-m-20 {
191 | margin: -5rem;
192 | }
193 |
194 | .-m-24 {
195 | margin: -6rem;
196 | }
197 |
198 | .-m-28 {
199 | margin: -7rem;
200 | }
201 |
202 | .-m-32 {
203 | margin: -8rem;
204 | }
205 |
206 | .-m-36 {
207 | margin: -9rem;
208 | }
209 |
210 | .-m-40 {
211 | margin: -10rem;
212 | }
213 |
214 | .-m-44 {
215 | margin: -11rem;
216 | }
217 |
218 | .-m-48 {
219 | margin: -12rem;
220 | }
221 |
222 | .-m-52 {
223 | margin: -13rem;
224 | }
225 |
226 | .-m-56 {
227 | margin: -14rem;
228 | }
229 |
230 | .-m-60 {
231 | margin: -15rem;
232 | }
233 |
234 | .-m-64 {
235 | margin: -16rem;
236 | }
237 |
238 | .-m-72 {
239 | margin: -18rem;
240 | }
241 |
242 | .-m-80 {
243 | margin: -20rem;
244 | }
245 |
246 | .-m-96 {
247 | margin: -24rem;
248 | }
249 |
250 | .-m-px {
251 | margin: -1px;
252 | }
253 |
254 | .my-0 {
255 | margin-top: 0px;
256 | margin-bottom: 0px;
257 | }
258 |
259 | .my-1 {
260 | margin-top: 0.25rem;
261 | margin-bottom: 0.25rem;
262 | }
263 |
264 | .my-2 {
265 | margin-top: 0.5rem;
266 | margin-bottom: 0.5rem;
267 | }
268 |
269 | .my-3 {
270 | margin-top: 0.75rem;
271 | margin-bottom: 0.75rem;
272 | }
273 |
274 | .my-4 {
275 | margin-top: 1rem;
276 | margin-bottom: 1rem;
277 | }
278 |
279 | .my-5 {
280 | margin-top: 1.25rem;
281 | margin-bottom: 1.25rem;
282 | }
283 |
284 | .my-6 {
285 | margin-top: 1.5rem;
286 | margin-bottom: 1.5rem;
287 | }
288 |
289 | .my-7 {
290 | margin-top: 1.75rem;
291 | margin-bottom: 1.75rem;
292 | }
293 |
294 | .my-8 {
295 | margin-top: 2rem;
296 | margin-bottom: 2rem;
297 | }
298 |
299 | .my-9 {
300 | margin-top: 2.25rem;
301 | margin-bottom: 2.25rem;
302 | }
303 |
304 | .my-10 {
305 | margin-top: 2.5rem;
306 | margin-bottom: 2.5rem;
307 | }
308 |
309 | .my-11 {
310 | margin-top: 2.75rem;
311 | margin-bottom: 2.75rem;
312 | }
313 |
314 | .my-12 {
315 | margin-top: 3rem;
316 | margin-bottom: 3rem;
317 | }
318 |
319 | .my-14 {
320 | margin-top: 3.5rem;
321 | margin-bottom: 3.5rem;
322 | }
323 |
324 | .my-16 {
325 | margin-top: 4rem;
326 | margin-bottom: 4rem;
327 | }
328 |
329 | .my-20 {
330 | margin-top: 5rem;
331 | margin-bottom: 5rem;
332 | }
333 |
334 | .my-24 {
335 | margin-top: 6rem;
336 | margin-bottom: 6rem;
337 | }
338 |
339 | .my-28 {
340 | margin-top: 7rem;
341 | margin-bottom: 7rem;
342 | }
343 |
344 | .my-32 {
345 | margin-top: 8rem;
346 | margin-bottom: 8rem;
347 | }
348 |
349 | .my-36 {
350 | margin-top: 9rem;
351 | margin-bottom: 9rem;
352 | }
353 |
354 | .my-40 {
355 | margin-top: 10rem;
356 | margin-bottom: 10rem;
357 | }
358 |
359 | .my-44 {
360 | margin-top: 11rem;
361 | margin-bottom: 11rem;
362 | }
363 |
364 | .my-48 {
365 | margin-top: 12rem;
366 | margin-bottom: 12rem;
367 | }
368 |
369 | .my-52 {
370 | margin-top: 13rem;
371 | margin-bottom: 13rem;
372 | }
373 |
374 | .my-56 {
375 | margin-top: 14rem;
376 | margin-bottom: 14rem;
377 | }
378 |
379 | .my-60 {
380 | margin-top: 15rem;
381 | margin-bottom: 15rem;
382 | }
383 |
384 | .my-64 {
385 | margin-top: 16rem;
386 | margin-bottom: 16rem;
387 | }
388 |
389 | .my-72 {
390 | margin-top: 18rem;
391 | margin-bottom: 18rem;
392 | }
393 |
394 | .my-80 {
395 | margin-top: 20rem;
396 | margin-bottom: 20rem;
397 | }
398 |
399 | .my-96 {
400 | margin-top: 24rem;
401 | margin-bottom: 24rem;
402 | }
403 |
404 | .my-auto {
405 | margin-top: auto;
406 | margin-bottom: auto;
407 | }
408 |
409 | .my-px {
410 | margin-top: 1px;
411 | margin-bottom: 1px;
412 | }
413 |
414 | .mx-0 {
415 | margin-left: 0px;
416 | margin-right: 0px;
417 | }
418 |
419 | .mx-1 {
420 | margin-left: 0.25rem;
421 | margin-right: 0.25rem;
422 | }
423 |
424 | .mx-2 {
425 | margin-left: 0.5rem;
426 | margin-right: 0.5rem;
427 | }
428 |
429 | .mx-3 {
430 | margin-left: 0.75rem;
431 | margin-right: 0.75rem;
432 | }
433 |
434 | .mx-4 {
435 | margin-left: 1rem;
436 | margin-right: 1rem;
437 | }
438 |
439 | .mx-5 {
440 | margin-left: 1.25rem;
441 | margin-right: 1.25rem;
442 | }
443 |
444 | .mx-6 {
445 | margin-left: 1.5rem;
446 | margin-right: 1.5rem;
447 | }
448 |
449 | .mx-7 {
450 | margin-left: 1.75rem;
451 | margin-right: 1.75rem;
452 | }
453 |
454 | .mx-8 {
455 | margin-left: 2rem;
456 | margin-right: 2rem;
457 | }
458 |
459 | .mx-9 {
460 | margin-left: 2.25rem;
461 | margin-right: 2.25rem;
462 | }
463 |
464 | .mx-10 {
465 | margin-left: 2.5rem;
466 | margin-right: 2.5rem;
467 | }
468 |
469 | .mx-11 {
470 | margin-left: 2.75rem;
471 | margin-right: 2.75rem;
472 | }
473 |
474 | .mx-12 {
475 | margin-left: 3rem;
476 | margin-right: 3rem;
477 | }
478 |
479 | .mx-14 {
480 | margin-left: 3.5rem;
481 | margin-right: 3.5rem;
482 | }
483 |
484 | .mx-16 {
485 | margin-left: 4rem;
486 | margin-right: 4rem;
487 | }
488 |
489 | .mx-20 {
490 | margin-left: 5rem;
491 | margin-right: 5rem;
492 | }
493 |
494 | .mx-24 {
495 | margin-left: 6rem;
496 | margin-right: 6rem;
497 | }
498 |
499 | .mx-28 {
500 | margin-left: 7rem;
501 | margin-right: 7rem;
502 | }
503 |
504 | .mx-32 {
505 | margin-left: 8rem;
506 | margin-right: 8rem;
507 | }
508 |
509 | .mx-36 {
510 | margin-left: 9rem;
511 | margin-right: 9rem;
512 | }
513 |
514 | .mx-40 {
515 | margin-left: 10rem;
516 | margin-right: 10rem;
517 | }
518 |
519 | .mx-44 {
520 | margin-left: 11rem;
521 | margin-right: 11rem;
522 | }
523 |
524 | .mx-48 {
525 | margin-left: 12rem;
526 | margin-right: 12rem;
527 | }
528 |
529 | .mx-52 {
530 | margin-left: 13rem;
531 | margin-right: 13rem;
532 | }
533 |
534 | .mx-56 {
535 | margin-left: 14rem;
536 | margin-right: 14rem;
537 | }
538 |
539 | .mx-60 {
540 | margin-left: 15rem;
541 | margin-right: 15rem;
542 | }
543 |
544 | .mx-64 {
545 | margin-left: 16rem;
546 | margin-right: 16rem;
547 | }
548 |
549 | .mx-72 {
550 | margin-left: 18rem;
551 | margin-right: 18rem;
552 | }
553 |
554 | .mx-80 {
555 | margin-left: 20rem;
556 | margin-right: 20rem;
557 | }
558 |
559 | .mx-96 {
560 | margin-left: 24rem;
561 | margin-right: 24rem;
562 | }
563 |
564 | .mx-auto {
565 | margin-left: auto;
566 | margin-right: auto;
567 | }
568 |
569 | .mx-px {
570 | margin-left: 1px;
571 | margin-right: 1px;
572 | }
573 |
574 | .-my-0 {
575 | margin-top: 0px;
576 | margin-bottom: 0px;
577 | }
578 |
579 | .-my-1 {
580 | margin-top: -0.25rem;
581 | margin-bottom: -0.25rem;
582 | }
583 |
584 | .-my-2 {
585 | margin-top: -0.5rem;
586 | margin-bottom: -0.5rem;
587 | }
588 |
589 | .-my-3 {
590 | margin-top: -0.75rem;
591 | margin-bottom: -0.75rem;
592 | }
593 |
594 | .-my-4 {
595 | margin-top: -1rem;
596 | margin-bottom: -1rem;
597 | }
598 |
599 | .-my-5 {
600 | margin-top: -1.25rem;
601 | margin-bottom: -1.25rem;
602 | }
603 |
604 | .-my-6 {
605 | margin-top: -1.5rem;
606 | margin-bottom: -1.5rem;
607 | }
608 |
609 | .-my-7 {
610 | margin-top: -1.75rem;
611 | margin-bottom: -1.75rem;
612 | }
613 |
614 | .-my-8 {
615 | margin-top: -2rem;
616 | margin-bottom: -2rem;
617 | }
618 |
619 | .-my-9 {
620 | margin-top: -2.25rem;
621 | margin-bottom: -2.25rem;
622 | }
623 |
624 | .-my-10 {
625 | margin-top: -2.5rem;
626 | margin-bottom: -2.5rem;
627 | }
628 |
629 | .-my-11 {
630 | margin-top: -2.75rem;
631 | margin-bottom: -2.75rem;
632 | }
633 |
634 | .-my-12 {
635 | margin-top: -3rem;
636 | margin-bottom: -3rem;
637 | }
638 |
639 | .-my-14 {
640 | margin-top: -3.5rem;
641 | margin-bottom: -3.5rem;
642 | }
643 |
644 | .-my-16 {
645 | margin-top: -4rem;
646 | margin-bottom: -4rem;
647 | }
648 |
649 | .-my-20 {
650 | margin-top: -5rem;
651 | margin-bottom: -5rem;
652 | }
653 |
654 | .-my-24 {
655 | margin-top: -6rem;
656 | margin-bottom: -6rem;
657 | }
658 |
659 | .-my-28 {
660 | margin-top: -7rem;
661 | margin-bottom: -7rem;
662 | }
663 |
664 | .-my-32 {
665 | margin-top: -8rem;
666 | margin-bottom: -8rem;
667 | }
668 |
669 | .-my-36 {
670 | margin-top: -9rem;
671 | margin-bottom: -9rem;
672 | }
673 |
674 | .-my-40 {
675 | margin-top: -10rem;
676 | margin-bottom: -10rem;
677 | }
678 |
679 | .-my-44 {
680 | margin-top: -11rem;
681 | margin-bottom: -11rem;
682 | }
683 |
684 | .-my-48 {
685 | margin-top: -12rem;
686 | margin-bottom: -12rem;
687 | }
688 |
689 | .-my-52 {
690 | margin-top: -13rem;
691 | margin-bottom: -13rem;
692 | }
693 |
694 | .-my-56 {
695 | margin-top: -14rem;
696 | margin-bottom: -14rem;
697 | }
698 |
699 | .-my-60 {
700 | margin-top: -15rem;
701 | margin-bottom: -15rem;
702 | }
703 |
704 | .-my-64 {
705 | margin-top: -16rem;
706 | margin-bottom: -16rem;
707 | }
708 |
709 | .-my-72 {
710 | margin-top: -18rem;
711 | margin-bottom: -18rem;
712 | }
713 |
714 | .-my-80 {
715 | margin-top: -20rem;
716 | margin-bottom: -20rem;
717 | }
718 |
719 | .-my-96 {
720 | margin-top: -24rem;
721 | margin-bottom: -24rem;
722 | }
723 |
724 | .-my-px {
725 | margin-top: -1px;
726 | margin-bottom: -1px;
727 | }
728 |
729 | .-mx-0 {
730 | margin-left: 0px;
731 | margin-right: 0px;
732 | }
733 |
734 | .-mx-1 {
735 | margin-left: -0.25rem;
736 | margin-right: -0.25rem;
737 | }
738 |
739 | .-mx-2 {
740 | margin-left: -0.5rem;
741 | margin-right: -0.5rem;
742 | }
743 |
744 | .-mx-3 {
745 | margin-left: -0.75rem;
746 | margin-right: -0.75rem;
747 | }
748 |
749 | .-mx-4 {
750 | margin-left: -1rem;
751 | margin-right: -1rem;
752 | }
753 |
754 | .-mx-5 {
755 | margin-left: -1.25rem;
756 | margin-right: -1.25rem;
757 | }
758 |
759 | .-mx-6 {
760 | margin-left: -1.5rem;
761 | margin-right: -1.5rem;
762 | }
763 |
764 | .-mx-7 {
765 | margin-left: -1.75rem;
766 | margin-right: -1.75rem;
767 | }
768 |
769 | .-mx-8 {
770 | margin-left: -2rem;
771 | margin-right: -2rem;
772 | }
773 |
774 | .-mx-9 {
775 | margin-left: -2.25rem;
776 | margin-right: -2.25rem;
777 | }
778 |
779 | .-mx-10 {
780 | margin-left: -2.5rem;
781 | margin-right: -2.5rem;
782 | }
783 |
784 | .-mx-11 {
785 | margin-left: -2.75rem;
786 | margin-right: -2.75rem;
787 | }
788 |
789 | .-mx-12 {
790 | margin-left: -3rem;
791 | margin-right: -3rem;
792 | }
793 |
794 | .-mx-14 {
795 | margin-left: -3.5rem;
796 | margin-right: -3.5rem;
797 | }
798 |
799 | .-mx-16 {
800 | margin-left: -4rem;
801 | margin-right: -4rem;
802 | }
803 |
804 | .-mx-20 {
805 | margin-left: -5rem;
806 | margin-right: -5rem;
807 | }
808 |
809 | .-mx-24 {
810 | margin-left: -6rem;
811 | margin-right: -6rem;
812 | }
813 |
814 | .-mx-28 {
815 | margin-left: -7rem;
816 | margin-right: -7rem;
817 | }
818 |
819 | .-mx-32 {
820 | margin-left: -8rem;
821 | margin-right: -8rem;
822 | }
823 |
824 | .-mx-36 {
825 | margin-left: -9rem;
826 | margin-right: -9rem;
827 | }
828 |
829 | .-mx-40 {
830 | margin-left: -10rem;
831 | margin-right: -10rem;
832 | }
833 |
834 | .-mx-44 {
835 | margin-left: -11rem;
836 | margin-right: -11rem;
837 | }
838 |
839 | .-mx-48 {
840 | margin-left: -12rem;
841 | margin-right: -12rem;
842 | }
843 |
844 | .-mx-52 {
845 | margin-left: -13rem;
846 | margin-right: -13rem;
847 | }
848 |
849 | .-mx-56 {
850 | margin-left: -14rem;
851 | margin-right: -14rem;
852 | }
853 |
854 | .-mx-60 {
855 | margin-left: -15rem;
856 | margin-right: -15rem;
857 | }
858 |
859 | .-mx-64 {
860 | margin-left: -16rem;
861 | margin-right: -16rem;
862 | }
863 |
864 | .-mx-72 {
865 | margin-left: -18rem;
866 | margin-right: -18rem;
867 | }
868 |
869 | .-mx-80 {
870 | margin-left: -20rem;
871 | margin-right: -20rem;
872 | }
873 |
874 | .-mx-96 {
875 | margin-left: -24rem;
876 | margin-right: -24rem;
877 | }
878 |
879 | .-mx-px {
880 | margin-left: -1px;
881 | margin-right: -1px;
882 | }
883 |
884 | .mt-0 {
885 | margin-top: 0px;
886 | }
887 |
888 | .mt-1 {
889 | margin-top: 0.25rem;
890 | }
891 |
892 | .mt-2 {
893 | margin-top: 0.5rem;
894 | }
895 |
896 | .mt-3 {
897 | margin-top: 0.75rem;
898 | }
899 |
900 | .mt-4 {
901 | margin-top: 1rem;
902 | }
903 |
904 | .mt-5 {
905 | margin-top: 1.25rem;
906 | }
907 |
908 | .mt-6 {
909 | margin-top: 1.5rem;
910 | }
911 |
912 | .mt-7 {
913 | margin-top: 1.75rem;
914 | }
915 |
916 | .mt-8 {
917 | margin-top: 2rem;
918 | }
919 |
920 | .mt-9 {
921 | margin-top: 2.25rem;
922 | }
923 |
924 | .mt-10 {
925 | margin-top: 2.5rem;
926 | }
927 |
928 | .mt-11 {
929 | margin-top: 2.75rem;
930 | }
931 |
932 | .mt-12 {
933 | margin-top: 3rem;
934 | }
935 |
936 | .mt-14 {
937 | margin-top: 3.5rem;
938 | }
939 |
940 | .mt-16 {
941 | margin-top: 4rem;
942 | }
943 |
944 | .mt-20 {
945 | margin-top: 5rem;
946 | }
947 |
948 | .mt-24 {
949 | margin-top: 6rem;
950 | }
951 |
952 | .mt-28 {
953 | margin-top: 7rem;
954 | }
955 |
956 | .mt-32 {
957 | margin-top: 8rem;
958 | }
959 |
960 | .mt-36 {
961 | margin-top: 9rem;
962 | }
963 |
964 | .mt-40 {
965 | margin-top: 10rem;
966 | }
967 |
968 | .mt-44 {
969 | margin-top: 11rem;
970 | }
971 |
972 | .mt-48 {
973 | margin-top: 12rem;
974 | }
975 |
976 | .mt-52 {
977 | margin-top: 13rem;
978 | }
979 |
980 | .mt-56 {
981 | margin-top: 14rem;
982 | }
983 |
984 | .mt-60 {
985 | margin-top: 15rem;
986 | }
987 |
988 | .mt-64 {
989 | margin-top: 16rem;
990 | }
991 |
992 | .mt-72 {
993 | margin-top: 18rem;
994 | }
995 |
996 | .mt-80 {
997 | margin-top: 20rem;
998 | }
999 |
1000 | .mt-96 {
1001 | margin-top: 24rem;
1002 | }
1003 |
1004 | .mt-auto {
1005 | margin-top: auto;
1006 | }
1007 |
1008 | .mt-px {
1009 | margin-top: 1px;
1010 | }
1011 |
1012 | .mr-0 {
1013 | margin-right: 0px;
1014 | }
1015 |
1016 | .mr-1 {
1017 | margin-right: 0.25rem;
1018 | }
1019 |
1020 | .mr-2 {
1021 | margin-right: 0.5rem;
1022 | }
1023 |
1024 | .mr-3 {
1025 | margin-right: 0.75rem;
1026 | }
1027 |
1028 | .mr-4 {
1029 | margin-right: 1rem;
1030 | }
1031 |
1032 | .mr-5 {
1033 | margin-right: 1.25rem;
1034 | }
1035 |
1036 | .mr-6 {
1037 | margin-right: 1.5rem;
1038 | }
1039 |
1040 | .mr-7 {
1041 | margin-right: 1.75rem;
1042 | }
1043 |
1044 | .mr-8 {
1045 | margin-right: 2rem;
1046 | }
1047 |
1048 | .mr-9 {
1049 | margin-right: 2.25rem;
1050 | }
1051 |
1052 | .mr-10 {
1053 | margin-right: 2.5rem;
1054 | }
1055 |
1056 | .mr-11 {
1057 | margin-right: 2.75rem;
1058 | }
1059 |
1060 | .mr-12 {
1061 | margin-right: 3rem;
1062 | }
1063 |
1064 | .mr-14 {
1065 | margin-right: 3.5rem;
1066 | }
1067 |
1068 | .mr-16 {
1069 | margin-right: 4rem;
1070 | }
1071 |
1072 | .mr-20 {
1073 | margin-right: 5rem;
1074 | }
1075 |
1076 | .mr-24 {
1077 | margin-right: 6rem;
1078 | }
1079 |
1080 | .mr-28 {
1081 | margin-right: 7rem;
1082 | }
1083 |
1084 | .mr-32 {
1085 | margin-right: 8rem;
1086 | }
1087 |
1088 | .mr-36 {
1089 | margin-right: 9rem;
1090 | }
1091 |
1092 | .mr-40 {
1093 | margin-right: 10rem;
1094 | }
1095 |
1096 | .mr-44 {
1097 | margin-right: 11rem;
1098 | }
1099 |
1100 | .mr-48 {
1101 | margin-right: 12rem;
1102 | }
1103 |
1104 | .mr-52 {
1105 | margin-right: 13rem;
1106 | }
1107 |
1108 | .mr-56 {
1109 | margin-right: 14rem;
1110 | }
1111 |
1112 | .mr-60 {
1113 | margin-right: 15rem;
1114 | }
1115 |
1116 | .mr-64 {
1117 | margin-right: 16rem;
1118 | }
1119 |
1120 | .mr-72 {
1121 | margin-right: 18rem;
1122 | }
1123 |
1124 | .mr-80 {
1125 | margin-right: 20rem;
1126 | }
1127 |
1128 | .mr-96 {
1129 | margin-right: 24rem;
1130 | }
1131 |
1132 | .mr-auto {
1133 | margin-right: auto;
1134 | }
1135 |
1136 | .mr-px {
1137 | margin-right: 1px;
1138 | }
1139 |
1140 | .mb-0 {
1141 | margin-bottom: 0px;
1142 | }
1143 |
1144 | .mb-1 {
1145 | margin-bottom: 0.25rem;
1146 | }
1147 |
1148 | .mb-2 {
1149 | margin-bottom: 0.5rem;
1150 | }
1151 |
1152 | .mb-3 {
1153 | margin-bottom: 0.75rem;
1154 | }
1155 |
1156 | .mb-4 {
1157 | margin-bottom: 1rem;
1158 | }
1159 |
1160 | .mb-5 {
1161 | margin-bottom: 1.25rem;
1162 | }
1163 |
1164 | .mb-6 {
1165 | margin-bottom: 1.5rem;
1166 | }
1167 |
1168 | .mb-7 {
1169 | margin-bottom: 1.75rem;
1170 | }
1171 |
1172 | .mb-8 {
1173 | margin-bottom: 2rem;
1174 | }
1175 |
1176 | .mb-9 {
1177 | margin-bottom: 2.25rem;
1178 | }
1179 |
1180 | .mb-10 {
1181 | margin-bottom: 2.5rem;
1182 | }
1183 |
1184 | .mb-11 {
1185 | margin-bottom: 2.75rem;
1186 | }
1187 |
1188 | .mb-12 {
1189 | margin-bottom: 3rem;
1190 | }
1191 |
1192 | .mb-14 {
1193 | margin-bottom: 3.5rem;
1194 | }
1195 |
1196 | .mb-16 {
1197 | margin-bottom: 4rem;
1198 | }
1199 |
1200 | .mb-20 {
1201 | margin-bottom: 5rem;
1202 | }
1203 |
1204 | .mb-24 {
1205 | margin-bottom: 6rem;
1206 | }
1207 |
1208 | .mb-28 {
1209 | margin-bottom: 7rem;
1210 | }
1211 |
1212 | .mb-32 {
1213 | margin-bottom: 8rem;
1214 | }
1215 |
1216 | .mb-36 {
1217 | margin-bottom: 9rem;
1218 | }
1219 |
1220 | .mb-40 {
1221 | margin-bottom: 10rem;
1222 | }
1223 |
1224 | .mb-44 {
1225 | margin-bottom: 11rem;
1226 | }
1227 |
1228 | .mb-48 {
1229 | margin-bottom: 12rem;
1230 | }
1231 |
1232 | .mb-52 {
1233 | margin-bottom: 13rem;
1234 | }
1235 |
1236 | .mb-56 {
1237 | margin-bottom: 14rem;
1238 | }
1239 |
1240 | .mb-60 {
1241 | margin-bottom: 15rem;
1242 | }
1243 |
1244 | .mb-64 {
1245 | margin-bottom: 16rem;
1246 | }
1247 |
1248 | .mb-72 {
1249 | margin-bottom: 18rem;
1250 | }
1251 |
1252 | .mb-80 {
1253 | margin-bottom: 20rem;
1254 | }
1255 |
1256 | .mb-96 {
1257 | margin-bottom: 24rem;
1258 | }
1259 |
1260 | .mb-auto {
1261 | margin-bottom: auto;
1262 | }
1263 |
1264 | .mb-px {
1265 | margin-bottom: 1px;
1266 | }
1267 |
1268 | .ml-0 {
1269 | margin-left: 0px;
1270 | }
1271 |
1272 | .ml-1 {
1273 | margin-left: 0.25rem;
1274 | }
1275 |
1276 | .ml-2 {
1277 | margin-left: 0.5rem;
1278 | }
1279 |
1280 | .ml-3 {
1281 | margin-left: 0.75rem;
1282 | }
1283 |
1284 | .ml-4 {
1285 | margin-left: 1rem;
1286 | }
1287 |
1288 | .ml-5 {
1289 | margin-left: 1.25rem;
1290 | }
1291 |
1292 | .ml-6 {
1293 | margin-left: 1.5rem;
1294 | }
1295 |
1296 | .ml-7 {
1297 | margin-left: 1.75rem;
1298 | }
1299 |
1300 | .ml-8 {
1301 | margin-left: 2rem;
1302 | }
1303 |
1304 | .ml-9 {
1305 | margin-left: 2.25rem;
1306 | }
1307 |
1308 | .ml-10 {
1309 | margin-left: 2.5rem;
1310 | }
1311 |
1312 | .ml-11 {
1313 | margin-left: 2.75rem;
1314 | }
1315 |
1316 | .ml-12 {
1317 | margin-left: 3rem;
1318 | }
1319 |
1320 | .ml-14 {
1321 | margin-left: 3.5rem;
1322 | }
1323 |
1324 | .ml-16 {
1325 | margin-left: 4rem;
1326 | }
1327 |
1328 | .ml-20 {
1329 | margin-left: 5rem;
1330 | }
1331 |
1332 | .ml-24 {
1333 | margin-left: 6rem;
1334 | }
1335 |
1336 | .ml-28 {
1337 | margin-left: 7rem;
1338 | }
1339 |
1340 | .ml-32 {
1341 | margin-left: 8rem;
1342 | }
1343 |
1344 | .ml-36 {
1345 | margin-left: 9rem;
1346 | }
1347 |
1348 | .ml-40 {
1349 | margin-left: 10rem;
1350 | }
1351 |
1352 | .ml-44 {
1353 | margin-left: 11rem;
1354 | }
1355 |
1356 | .ml-48 {
1357 | margin-left: 12rem;
1358 | }
1359 |
1360 | .ml-52 {
1361 | margin-left: 13rem;
1362 | }
1363 |
1364 | .ml-56 {
1365 | margin-left: 14rem;
1366 | }
1367 |
1368 | .ml-60 {
1369 | margin-left: 15rem;
1370 | }
1371 |
1372 | .ml-64 {
1373 | margin-left: 16rem;
1374 | }
1375 |
1376 | .ml-72 {
1377 | margin-left: 18rem;
1378 | }
1379 |
1380 | .ml-80 {
1381 | margin-left: 20rem;
1382 | }
1383 |
1384 | .ml-96 {
1385 | margin-left: 24rem;
1386 | }
1387 |
1388 | .ml-auto {
1389 | margin-left: auto;
1390 | }
1391 |
1392 | .ml-px {
1393 | margin-left: 1px;
1394 | }
1395 |
1396 | .-mt-0 {
1397 | margin-top: 0px;
1398 | }
1399 |
1400 | .-mt-1 {
1401 | margin-top: -0.25rem;
1402 | }
1403 |
1404 | .-mt-2 {
1405 | margin-top: -0.5rem;
1406 | }
1407 |
1408 | .-mt-3 {
1409 | margin-top: -0.75rem;
1410 | }
1411 |
1412 | .-mt-4 {
1413 | margin-top: -1rem;
1414 | }
1415 |
1416 | .-mt-5 {
1417 | margin-top: -1.25rem;
1418 | }
1419 |
1420 | .-mt-6 {
1421 | margin-top: -1.5rem;
1422 | }
1423 |
1424 | .-mt-7 {
1425 | margin-top: -1.75rem;
1426 | }
1427 |
1428 | .-mt-8 {
1429 | margin-top: -2rem;
1430 | }
1431 |
1432 | .-mt-9 {
1433 | margin-top: -2.25rem;
1434 | }
1435 |
1436 | .-mt-10 {
1437 | margin-top: -2.5rem;
1438 | }
1439 |
1440 | .-mt-11 {
1441 | margin-top: -2.75rem;
1442 | }
1443 |
1444 | .-mt-12 {
1445 | margin-top: -3rem;
1446 | }
1447 |
1448 | .-mt-14 {
1449 | margin-top: -3.5rem;
1450 | }
1451 |
1452 | .-mt-16 {
1453 | margin-top: -4rem;
1454 | }
1455 |
1456 | .-mt-20 {
1457 | margin-top: -5rem;
1458 | }
1459 |
1460 | .-mt-24 {
1461 | margin-top: -6rem;
1462 | }
1463 |
1464 | .-mt-28 {
1465 | margin-top: -7rem;
1466 | }
1467 |
1468 | .-mt-32 {
1469 | margin-top: -8rem;
1470 | }
1471 |
1472 | .-mt-36 {
1473 | margin-top: -9rem;
1474 | }
1475 |
1476 | .-mt-40 {
1477 | margin-top: -10rem;
1478 | }
1479 |
1480 | .-mt-44 {
1481 | margin-top: -11rem;
1482 | }
1483 |
1484 | .-mt-48 {
1485 | margin-top: -12rem;
1486 | }
1487 |
1488 | .-mt-52 {
1489 | margin-top: -13rem;
1490 | }
1491 |
1492 | .-mt-56 {
1493 | margin-top: -14rem;
1494 | }
1495 |
1496 | .-mt-60 {
1497 | margin-top: -15rem;
1498 | }
1499 |
1500 | .-mt-64 {
1501 | margin-top: -16rem;
1502 | }
1503 |
1504 | .-mt-72 {
1505 | margin-top: -18rem;
1506 | }
1507 |
1508 | .-mt-80 {
1509 | margin-top: -20rem;
1510 | }
1511 |
1512 | .-mt-96 {
1513 | margin-top: -24rem;
1514 | }
1515 |
1516 | .-mt-px {
1517 | margin-top: -1px;
1518 | }
1519 |
1520 | .-mr-0 {
1521 | margin-right: 0px;
1522 | }
1523 |
1524 | .-mr-1 {
1525 | margin-right: -0.25rem;
1526 | }
1527 |
1528 | .-mr-2 {
1529 | margin-right: -0.5rem;
1530 | }
1531 |
1532 | .-mr-3 {
1533 | margin-right: -0.75rem;
1534 | }
1535 |
1536 | .-mr-4 {
1537 | margin-right: -1rem;
1538 | }
1539 |
1540 | .-mr-5 {
1541 | margin-right: -1.25rem;
1542 | }
1543 |
1544 | .-mr-6 {
1545 | margin-right: -1.5rem;
1546 | }
1547 |
1548 | .-mr-7 {
1549 | margin-right: -1.75rem;
1550 | }
1551 |
1552 | .-mr-8 {
1553 | margin-right: -2rem;
1554 | }
1555 |
1556 | .-mr-9 {
1557 | margin-right: -2.25rem;
1558 | }
1559 |
1560 | .-mr-10 {
1561 | margin-right: -2.5rem;
1562 | }
1563 |
1564 | .-mr-11 {
1565 | margin-right: -2.75rem;
1566 | }
1567 |
1568 | .-mr-12 {
1569 | margin-right: -3rem;
1570 | }
1571 |
1572 | .-mr-14 {
1573 | margin-right: -3.5rem;
1574 | }
1575 |
1576 | .-mr-16 {
1577 | margin-right: -4rem;
1578 | }
1579 |
1580 | .-mr-20 {
1581 | margin-right: -5rem;
1582 | }
1583 |
1584 | .-mr-24 {
1585 | margin-right: -6rem;
1586 | }
1587 |
1588 | .-mr-28 {
1589 | margin-right: -7rem;
1590 | }
1591 |
1592 | .-mr-32 {
1593 | margin-right: -8rem;
1594 | }
1595 |
1596 | .-mr-36 {
1597 | margin-right: -9rem;
1598 | }
1599 |
1600 | .-mr-40 {
1601 | margin-right: -10rem;
1602 | }
1603 |
1604 | .-mr-44 {
1605 | margin-right: -11rem;
1606 | }
1607 |
1608 | .-mr-48 {
1609 | margin-right: -12rem;
1610 | }
1611 |
1612 | .-mr-52 {
1613 | margin-right: -13rem;
1614 | }
1615 |
1616 | .-mr-56 {
1617 | margin-right: -14rem;
1618 | }
1619 |
1620 | .-mr-60 {
1621 | margin-right: -15rem;
1622 | }
1623 |
1624 | .-mr-64 {
1625 | margin-right: -16rem;
1626 | }
1627 |
1628 | .-mr-72 {
1629 | margin-right: -18rem;
1630 | }
1631 |
1632 | .-mr-80 {
1633 | margin-right: -20rem;
1634 | }
1635 |
1636 | .-mr-96 {
1637 | margin-right: -24rem;
1638 | }
1639 |
1640 | .-mr-px {
1641 | margin-right: -1px;
1642 | }
1643 |
1644 | .-mb-0 {
1645 | margin-bottom: 0px;
1646 | }
1647 |
1648 | .-mb-1 {
1649 | margin-bottom: -0.25rem;
1650 | }
1651 |
1652 | .-mb-2 {
1653 | margin-bottom: -0.5rem;
1654 | }
1655 |
1656 | .-mb-3 {
1657 | margin-bottom: -0.75rem;
1658 | }
1659 |
1660 | .-mb-4 {
1661 | margin-bottom: -1rem;
1662 | }
1663 |
1664 | .-mb-5 {
1665 | margin-bottom: -1.25rem;
1666 | }
1667 |
1668 | .-mb-6 {
1669 | margin-bottom: -1.5rem;
1670 | }
1671 |
1672 | .-mb-7 {
1673 | margin-bottom: -1.75rem;
1674 | }
1675 |
1676 | .-mb-8 {
1677 | margin-bottom: -2rem;
1678 | }
1679 |
1680 | .-mb-9 {
1681 | margin-bottom: -2.25rem;
1682 | }
1683 |
1684 | .-mb-10 {
1685 | margin-bottom: -2.5rem;
1686 | }
1687 |
1688 | .-mb-11 {
1689 | margin-bottom: -2.75rem;
1690 | }
1691 |
1692 | .-mb-12 {
1693 | margin-bottom: -3rem;
1694 | }
1695 |
1696 | .-mb-14 {
1697 | margin-bottom: -3.5rem;
1698 | }
1699 |
1700 | .-mb-16 {
1701 | margin-bottom: -4rem;
1702 | }
1703 |
1704 | .-mb-20 {
1705 | margin-bottom: -5rem;
1706 | }
1707 |
1708 | .-mb-24 {
1709 | margin-bottom: -6rem;
1710 | }
1711 |
1712 | .-mb-28 {
1713 | margin-bottom: -7rem;
1714 | }
1715 |
1716 | .-mb-32 {
1717 | margin-bottom: -8rem;
1718 | }
1719 |
1720 | .-mb-36 {
1721 | margin-bottom: -9rem;
1722 | }
1723 |
1724 | .-mb-40 {
1725 | margin-bottom: -10rem;
1726 | }
1727 |
1728 | .-mb-44 {
1729 | margin-bottom: -11rem;
1730 | }
1731 |
1732 | .-mb-48 {
1733 | margin-bottom: -12rem;
1734 | }
1735 |
1736 | .-mb-52 {
1737 | margin-bottom: -13rem;
1738 | }
1739 |
1740 | .-mb-56 {
1741 | margin-bottom: -14rem;
1742 | }
1743 |
1744 | .-mb-60 {
1745 | margin-bottom: -15rem;
1746 | }
1747 |
1748 | .-mb-64 {
1749 | margin-bottom: -16rem;
1750 | }
1751 |
1752 | .-mb-72 {
1753 | margin-bottom: -18rem;
1754 | }
1755 |
1756 | .-mb-80 {
1757 | margin-bottom: -20rem;
1758 | }
1759 |
1760 | .-mb-96 {
1761 | margin-bottom: -24rem;
1762 | }
1763 |
1764 | .-mb-px {
1765 | margin-bottom: -1px;
1766 | }
1767 |
1768 | .-ml-0 {
1769 | margin-left: 0px;
1770 | }
1771 |
1772 | .-ml-1 {
1773 | margin-left: -0.25rem;
1774 | }
1775 |
1776 | .-ml-2 {
1777 | margin-left: -0.5rem;
1778 | }
1779 |
1780 | .-ml-3 {
1781 | margin-left: -0.75rem;
1782 | }
1783 |
1784 | .-ml-4 {
1785 | margin-left: -1rem;
1786 | }
1787 |
1788 | .-ml-5 {
1789 | margin-left: -1.25rem;
1790 | }
1791 |
1792 | .-ml-6 {
1793 | margin-left: -1.5rem;
1794 | }
1795 |
1796 | .-ml-7 {
1797 | margin-left: -1.75rem;
1798 | }
1799 |
1800 | .-ml-8 {
1801 | margin-left: -2rem;
1802 | }
1803 |
1804 | .-ml-9 {
1805 | margin-left: -2.25rem;
1806 | }
1807 |
1808 | .-ml-10 {
1809 | margin-left: -2.5rem;
1810 | }
1811 |
1812 | .-ml-11 {
1813 | margin-left: -2.75rem;
1814 | }
1815 |
1816 | .-ml-12 {
1817 | margin-left: -3rem;
1818 | }
1819 |
1820 | .-ml-14 {
1821 | margin-left: -3.5rem;
1822 | }
1823 |
1824 | .-ml-16 {
1825 | margin-left: -4rem;
1826 | }
1827 |
1828 | .-ml-20 {
1829 | margin-left: -5rem;
1830 | }
1831 |
1832 | .-ml-24 {
1833 | margin-left: -6rem;
1834 | }
1835 |
1836 | .-ml-28 {
1837 | margin-left: -7rem;
1838 | }
1839 |
1840 | .-ml-32 {
1841 | margin-left: -8rem;
1842 | }
1843 |
1844 | .-ml-36 {
1845 | margin-left: -9rem;
1846 | }
1847 |
1848 | .-ml-40 {
1849 | margin-left: -10rem;
1850 | }
1851 |
1852 | .-ml-44 {
1853 | margin-left: -11rem;
1854 | }
1855 |
1856 | .-ml-48 {
1857 | margin-left: -12rem;
1858 | }
1859 |
1860 | .-ml-52 {
1861 | margin-left: -13rem;
1862 | }
1863 |
1864 | .-ml-56 {
1865 | margin-left: -14rem;
1866 | }
1867 |
1868 | .-ml-60 {
1869 | margin-left: -15rem;
1870 | }
1871 |
1872 | .-ml-64 {
1873 | margin-left: -16rem;
1874 | }
1875 |
1876 | .-ml-72 {
1877 | margin-left: -18rem;
1878 | }
1879 |
1880 | .-ml-80 {
1881 | margin-left: -20rem;
1882 | }
1883 |
1884 | .-ml-96 {
1885 | margin-left: -24rem;
1886 | }
1887 |
1888 | .-ml-px {
1889 | margin-left: -1px;
1890 | }
1891 |
1892 | /* Padding */
1893 |
1894 | .p-0 {
1895 | padding: 0px;
1896 | }
1897 | .p-1 {
1898 | padding: 0.25rem;
1899 | }
1900 | .p-2 {
1901 | padding: 0.5rem;
1902 | }
1903 | .p-3 {
1904 | padding: 0.75rem;
1905 | }
1906 | .p-4 {
1907 | padding: 1rem;
1908 | }
1909 | .p-5 {
1910 | padding: 1.25rem;
1911 | }
1912 | .p-6 {
1913 | padding: 1.5rem;
1914 | }
1915 | .p-7 {
1916 | padding: 1.75rem;
1917 | }
1918 | .p-8 {
1919 | padding: 2rem;
1920 | }
1921 | .p-9 {
1922 | padding: 2.25rem;
1923 | }
1924 | .p-10 {
1925 | padding: 2.5rem;
1926 | }
1927 | .p-11 {
1928 | padding: 2.75rem;
1929 | }
1930 | .p-12 {
1931 | padding: 3rem;
1932 | }
1933 | .p-14 {
1934 | padding: 3.5rem;
1935 | }
1936 | .p-16 {
1937 | padding: 4rem;
1938 | }
1939 | .p-20 {
1940 | padding: 5rem;
1941 | }
1942 | .p-24 {
1943 | padding: 6rem;
1944 | }
1945 | .p-28 {
1946 | padding: 7rem;
1947 | }
1948 | .p-32 {
1949 | padding: 8rem;
1950 | }
1951 | .p-36 {
1952 | padding: 9rem;
1953 | }
1954 | .p-40 {
1955 | padding: 10rem;
1956 | }
1957 | .p-44 {
1958 | padding: 11rem;
1959 | }
1960 | .p-48 {
1961 | padding: 12rem;
1962 | }
1963 | .p-52 {
1964 | padding: 13rem;
1965 | }
1966 | .p-56 {
1967 | padding: 14rem;
1968 | }
1969 | .p-60 {
1970 | padding: 15rem;
1971 | }
1972 | .p-64 {
1973 | padding: 16rem;
1974 | }
1975 | .p-72 {
1976 | padding: 18rem;
1977 | }
1978 | .p-80 {
1979 | padding: 20rem;
1980 | }
1981 | .p-96 {
1982 | padding: 24rem;
1983 | }
1984 | .p-px {
1985 | padding: 1px;
1986 | }
1987 | .py-0 {
1988 | padding-top: 0px;
1989 | padding-bottom: 0px;
1990 | padding-bottom: 0.125rem;
1991 | }
1992 | .py-1 {
1993 | padding-top: 0.25rem;
1994 | padding-bottom: 0.25rem;
1995 | padding-bottom: 0.375rem;
1996 | }
1997 | .py-2 {
1998 | padding-top: 0.5rem;
1999 | padding-bottom: 0.5rem;
2000 | padding-bottom: 0.625rem;
2001 | }
2002 | .py-3 {
2003 | padding-top: 0.75rem;
2004 | padding-bottom: 0.75rem;
2005 | padding-bottom: 0.875rem;
2006 | }
2007 | .py-4 {
2008 | padding-top: 1rem;
2009 | padding-bottom: 1rem;
2010 | }
2011 | .py-5 {
2012 | padding-top: 1.25rem;
2013 | padding-bottom: 1.25rem;
2014 | }
2015 | .py-6 {
2016 | padding-top: 1.5rem;
2017 | padding-bottom: 1.5rem;
2018 | }
2019 | .py-7 {
2020 | padding-top: 1.75rem;
2021 | padding-bottom: 1.75rem;
2022 | }
2023 | .py-8 {
2024 | padding-top: 2rem;
2025 | padding-bottom: 2rem;
2026 | }
2027 | .py-9 {
2028 | padding-top: 2.25rem;
2029 | padding-bottom: 2.25rem;
2030 | }
2031 | .py-10 {
2032 | padding-top: 2.5rem;
2033 | padding-bottom: 2.5rem;
2034 | }
2035 | .py-11 {
2036 | padding-top: 2.75rem;
2037 | padding-bottom: 2.75rem;
2038 | }
2039 | .py-12 {
2040 | padding-top: 3rem;
2041 | padding-bottom: 3rem;
2042 | }
2043 | .py-14 {
2044 | padding-top: 3.5rem;
2045 | padding-bottom: 3.5rem;
2046 | }
2047 | .py-16 {
2048 | padding-top: 4rem;
2049 | padding-bottom: 4rem;
2050 | }
2051 | .py-20 {
2052 | padding-top: 5rem;
2053 | padding-bottom: 5rem;
2054 | }
2055 | .py-24 {
2056 | padding-top: 6rem;
2057 | padding-bottom: 6rem;
2058 | }
2059 | .py-28 {
2060 | padding-top: 7rem;
2061 | padding-bottom: 7rem;
2062 | }
2063 | .py-32 {
2064 | padding-top: 8rem;
2065 | padding-bottom: 8rem;
2066 | }
2067 | .py-36 {
2068 | padding-top: 9rem;
2069 | padding-bottom: 9rem;
2070 | }
2071 | .py-40 {
2072 | padding-top: 10rem;
2073 | padding-bottom: 10rem;
2074 | }
2075 | .py-44 {
2076 | padding-top: 11rem;
2077 | padding-bottom: 11rem;
2078 | }
2079 | .py-48 {
2080 | padding-top: 12rem;
2081 | padding-bottom: 12rem;
2082 | }
2083 | .py-52 {
2084 | padding-top: 13rem;
2085 | padding-bottom: 13rem;
2086 | }
2087 | .py-56 {
2088 | padding-top: 14rem;
2089 | padding-bottom: 14rem;
2090 | }
2091 | .py-60 {
2092 | padding-top: 15rem;
2093 | padding-bottom: 15rem;
2094 | }
2095 | .py-64 {
2096 | padding-top: 16rem;
2097 | padding-bottom: 16rem;
2098 | }
2099 | .py-72 {
2100 | padding-top: 18rem;
2101 | padding-bottom: 18rem;
2102 | }
2103 | .py-80 {
2104 | padding-top: 20rem;
2105 | padding-bottom: 20rem;
2106 | }
2107 | .py-96 {
2108 | padding-top: 24rem;
2109 | padding-bottom: 24rem;
2110 | }
2111 | .py-px {
2112 | padding-top: 1px;
2113 | padding-bottom: 1px;
2114 | }
2115 | .px-0 {
2116 | padding-left: 0px;
2117 | padding-right: 0px;
2118 | padding-right: 0.125rem;
2119 | }
2120 | .px-1 {
2121 | padding-left: 0.25rem;
2122 | padding-right: 0.25rem;
2123 | padding-right: 0.375rem;
2124 | }
2125 | .px-2 {
2126 | padding-left: 0.5rem;
2127 | padding-right: 0.5rem;
2128 | padding-right: 0.625rem;
2129 | }
2130 | .px-3 {
2131 | padding-left: 0.75rem;
2132 | padding-right: 0.75rem;
2133 | padding-right: 0.875rem;
2134 | }
2135 | .px-4 {
2136 | padding-left: 1rem;
2137 | padding-right: 1rem;
2138 | }
2139 | .px-5 {
2140 | padding-left: 1.25rem;
2141 | padding-right: 1.25rem;
2142 | }
2143 | .px-6 {
2144 | padding-left: 1.5rem;
2145 | padding-right: 1.5rem;
2146 | }
2147 | .px-7 {
2148 | padding-left: 1.75rem;
2149 | padding-right: 1.75rem;
2150 | }
2151 | .px-8 {
2152 | padding-left: 2rem;
2153 | padding-right: 2rem;
2154 | }
2155 | .px-9 {
2156 | padding-left: 2.25rem;
2157 | padding-right: 2.25rem;
2158 | }
2159 | .px-10 {
2160 | padding-left: 2.5rem;
2161 | padding-right: 2.5rem;
2162 | }
2163 | .px-11 {
2164 | padding-left: 2.75rem;
2165 | padding-right: 2.75rem;
2166 | }
2167 | .px-12 {
2168 | padding-left: 3rem;
2169 | padding-right: 3rem;
2170 | }
2171 | .px-14 {
2172 | padding-left: 3.5rem;
2173 | padding-right: 3.5rem;
2174 | }
2175 | .px-16 {
2176 | padding-left: 4rem;
2177 | padding-right: 4rem;
2178 | }
2179 | .px-20 {
2180 | padding-left: 5rem;
2181 | padding-right: 5rem;
2182 | }
2183 | .px-24 {
2184 | padding-left: 6rem;
2185 | padding-right: 6rem;
2186 | }
2187 | .px-28 {
2188 | padding-left: 7rem;
2189 | padding-right: 7rem;
2190 | }
2191 | .px-32 {
2192 | padding-left: 8rem;
2193 | padding-right: 8rem;
2194 | }
2195 | .px-36 {
2196 | padding-left: 9rem;
2197 | padding-right: 9rem;
2198 | }
2199 | .px-40 {
2200 | padding-left: 10rem;
2201 | padding-right: 10rem;
2202 | }
2203 | .px-44 {
2204 | padding-left: 11rem;
2205 | padding-right: 11rem;
2206 | }
2207 | .px-48 {
2208 | padding-left: 12rem;
2209 | padding-right: 12rem;
2210 | }
2211 | .px-52 {
2212 | padding-left: 13rem;
2213 | padding-right: 13rem;
2214 | }
2215 | .px-56 {
2216 | padding-left: 14rem;
2217 | padding-right: 14rem;
2218 | }
2219 | .px-60 {
2220 | padding-left: 15rem;
2221 | padding-right: 15rem;
2222 | }
2223 | .px-64 {
2224 | padding-left: 16rem;
2225 | padding-right: 16rem;
2226 | }
2227 | .px-72 {
2228 | padding-left: 18rem;
2229 | padding-right: 18rem;
2230 | }
2231 | .px-80 {
2232 | padding-left: 20rem;
2233 | padding-right: 20rem;
2234 | }
2235 | .px-96 {
2236 | padding-left: 24rem;
2237 | padding-right: 24rem;
2238 | }
2239 | .px-px {
2240 | padding-left: 1px;
2241 | padding-right: 1px;
2242 | }
2243 | .pt-0 {
2244 | padding-top: 0px;
2245 | }
2246 | .pt-1 {
2247 | padding-top: 0.25rem;
2248 | }
2249 | .pt-2 {
2250 | padding-top: 0.5rem;
2251 | }
2252 | .pt-3 {
2253 | padding-top: 0.75rem;
2254 | }
2255 | .pt-4 {
2256 | padding-top: 1rem;
2257 | }
2258 | .pt-5 {
2259 | padding-top: 1.25rem;
2260 | }
2261 | .pt-6 {
2262 | padding-top: 1.5rem;
2263 | }
2264 | .pt-7 {
2265 | padding-top: 1.75rem;
2266 | }
2267 | .pt-8 {
2268 | padding-top: 2rem;
2269 | }
2270 | .pt-9 {
2271 | padding-top: 2.25rem;
2272 | }
2273 | .pt-10 {
2274 | padding-top: 2.5rem;
2275 | }
2276 | .pt-11 {
2277 | padding-top: 2.75rem;
2278 | }
2279 | .pt-12 {
2280 | padding-top: 3rem;
2281 | }
2282 | .pt-14 {
2283 | padding-top: 3.5rem;
2284 | }
2285 | .pt-16 {
2286 | padding-top: 4rem;
2287 | }
2288 | .pt-20 {
2289 | padding-top: 5rem;
2290 | }
2291 | .pt-24 {
2292 | padding-top: 6rem;
2293 | }
2294 | .pt-28 {
2295 | padding-top: 7rem;
2296 | }
2297 | .pt-32 {
2298 | padding-top: 8rem;
2299 | }
2300 | .pt-36 {
2301 | padding-top: 9rem;
2302 | }
2303 | .pt-40 {
2304 | padding-top: 10rem;
2305 | }
2306 | .pt-44 {
2307 | padding-top: 11rem;
2308 | }
2309 | .pt-48 {
2310 | padding-top: 12rem;
2311 | }
2312 | .pt-52 {
2313 | padding-top: 13rem;
2314 | }
2315 | .pt-56 {
2316 | padding-top: 14rem;
2317 | }
2318 | .pt-60 {
2319 | padding-top: 15rem;
2320 | }
2321 | .pt-64 {
2322 | padding-top: 16rem;
2323 | }
2324 | .pt-72 {
2325 | padding-top: 18rem;
2326 | }
2327 | .pt-80 {
2328 | padding-top: 20rem;
2329 | }
2330 | .pt-96 {
2331 | padding-top: 24rem;
2332 | }
2333 | .pt-px {
2334 | padding-top: 1px;
2335 | }
2336 | .pr-0 {
2337 | padding-right: 0px;
2338 | }
2339 | .pr-1 {
2340 | padding-right: 0.25rem;
2341 | }
2342 | .pr-2 {
2343 | padding-right: 0.5rem;
2344 | }
2345 | .pr-3 {
2346 | padding-right: 0.75rem;
2347 | }
2348 | .pr-4 {
2349 | padding-right: 1rem;
2350 | }
2351 | .pr-5 {
2352 | padding-right: 1.25rem;
2353 | }
2354 | .pr-6 {
2355 | padding-right: 1.5rem;
2356 | }
2357 | .pr-7 {
2358 | padding-right: 1.75rem;
2359 | }
2360 | .pr-8 {
2361 | padding-right: 2rem;
2362 | }
2363 | .pr-9 {
2364 | padding-right: 2.25rem;
2365 | }
2366 | .pr-10 {
2367 | padding-right: 2.5rem;
2368 | }
2369 | .pr-11 {
2370 | padding-right: 2.75rem;
2371 | }
2372 | .pr-12 {
2373 | padding-right: 3rem;
2374 | }
2375 | .pr-14 {
2376 | padding-right: 3.5rem;
2377 | }
2378 | .pr-16 {
2379 | padding-right: 4rem;
2380 | }
2381 | .pr-20 {
2382 | padding-right: 5rem;
2383 | }
2384 | .pr-24 {
2385 | padding-right: 6rem;
2386 | }
2387 | .pr-28 {
2388 | padding-right: 7rem;
2389 | }
2390 | .pr-32 {
2391 | padding-right: 8rem;
2392 | }
2393 | .pr-36 {
2394 | padding-right: 9rem;
2395 | }
2396 | .pr-40 {
2397 | padding-right: 10rem;
2398 | }
2399 | .pr-44 {
2400 | padding-right: 11rem;
2401 | }
2402 | .pr-48 {
2403 | padding-right: 12rem;
2404 | }
2405 | .pr-52 {
2406 | padding-right: 13rem;
2407 | }
2408 | .pr-56 {
2409 | padding-right: 14rem;
2410 | }
2411 | .pr-60 {
2412 | padding-right: 15rem;
2413 | }
2414 | .pr-64 {
2415 | padding-right: 16rem;
2416 | }
2417 | .pr-72 {
2418 | padding-right: 18rem;
2419 | }
2420 | .pr-80 {
2421 | padding-right: 20rem;
2422 | }
2423 | .pr-96 {
2424 | padding-right: 24rem;
2425 | }
2426 | .pr-px {
2427 | padding-right: 1px;
2428 | }
2429 | .pb-0 {
2430 | padding-bottom: 0px;
2431 | }
2432 | .pb-1 {
2433 | padding-bottom: 0.25rem;
2434 | }
2435 | .pb-2 {
2436 | padding-bottom: 0.5rem;
2437 | }
2438 | .pb-3 {
2439 | padding-bottom: 0.75rem;
2440 | }
2441 | .pb-4 {
2442 | padding-bottom: 1rem;
2443 | }
2444 | .pb-5 {
2445 | padding-bottom: 1.25rem;
2446 | }
2447 | .pb-6 {
2448 | padding-bottom: 1.5rem;
2449 | }
2450 | .pb-7 {
2451 | padding-bottom: 1.75rem;
2452 | }
2453 | .pb-8 {
2454 | padding-bottom: 2rem;
2455 | }
2456 | .pb-9 {
2457 | padding-bottom: 2.25rem;
2458 | }
2459 | .pb-10 {
2460 | padding-bottom: 2.5rem;
2461 | }
2462 | .pb-11 {
2463 | padding-bottom: 2.75rem;
2464 | }
2465 | .pb-12 {
2466 | padding-bottom: 3rem;
2467 | }
2468 | .pb-14 {
2469 | padding-bottom: 3.5rem;
2470 | }
2471 | .pb-16 {
2472 | padding-bottom: 4rem;
2473 | }
2474 | .pb-20 {
2475 | padding-bottom: 5rem;
2476 | }
2477 | .pb-24 {
2478 | padding-bottom: 6rem;
2479 | }
2480 | .pb-28 {
2481 | padding-bottom: 7rem;
2482 | }
2483 | .pb-32 {
2484 | padding-bottom: 8rem;
2485 | }
2486 | .pb-36 {
2487 | padding-bottom: 9rem;
2488 | }
2489 | .pb-40 {
2490 | padding-bottom: 10rem;
2491 | }
2492 | .pb-44 {
2493 | padding-bottom: 11rem;
2494 | }
2495 | .pb-48 {
2496 | padding-bottom: 12rem;
2497 | }
2498 | .pb-52 {
2499 | padding-bottom: 13rem;
2500 | }
2501 | .pb-56 {
2502 | padding-bottom: 14rem;
2503 | }
2504 | .pb-60 {
2505 | padding-bottom: 15rem;
2506 | }
2507 | .pb-64 {
2508 | padding-bottom: 16rem;
2509 | }
2510 | .pb-72 {
2511 | padding-bottom: 18rem;
2512 | }
2513 | .pb-80 {
2514 | padding-bottom: 20rem;
2515 | }
2516 | .pb-96 {
2517 | padding-bottom: 24rem;
2518 | }
2519 | .pb-px {
2520 | padding-bottom: 1px;
2521 | }
2522 | .pl-0 {
2523 | padding-left: 0px;
2524 | }
2525 | .pl-1 {
2526 | padding-left: 0.25rem;
2527 | }
2528 | .pl-2 {
2529 | padding-left: 0.5rem;
2530 | }
2531 | .pl-3 {
2532 | padding-left: 0.75rem;
2533 | }
2534 | .pl-4 {
2535 | padding-left: 1rem;
2536 | }
2537 | .pl-5 {
2538 | padding-left: 1.25rem;
2539 | }
2540 | .pl-6 {
2541 | padding-left: 1.5rem;
2542 | }
2543 | .pl-7 {
2544 | padding-left: 1.75rem;
2545 | }
2546 | .pl-8 {
2547 | padding-left: 2rem;
2548 | }
2549 | .pl-9 {
2550 | padding-left: 2.25rem;
2551 | }
2552 | .pl-10 {
2553 | padding-left: 2.5rem;
2554 | }
2555 | .pl-11 {
2556 | padding-left: 2.75rem;
2557 | }
2558 | .pl-12 {
2559 | padding-left: 3rem;
2560 | }
2561 | .pl-14 {
2562 | padding-left: 3.5rem;
2563 | }
2564 | .pl-16 {
2565 | padding-left: 4rem;
2566 | }
2567 | .pl-20 {
2568 | padding-left: 5rem;
2569 | }
2570 | .pl-24 {
2571 | padding-left: 6rem;
2572 | }
2573 | .pl-28 {
2574 | padding-left: 7rem;
2575 | }
2576 | .pl-32 {
2577 | padding-left: 8rem;
2578 | }
2579 | .pl-36 {
2580 | padding-left: 9rem;
2581 | }
2582 | .pl-40 {
2583 | padding-left: 10rem;
2584 | }
2585 | .pl-44 {
2586 | padding-left: 11rem;
2587 | }
2588 | .pl-48 {
2589 | padding-left: 12rem;
2590 | }
2591 | .pl-52 {
2592 | padding-left: 13rem;
2593 | }
2594 | .pl-56 {
2595 | padding-left: 14rem;
2596 | }
2597 | .pl-60 {
2598 | padding-left: 15rem;
2599 | }
2600 | .pl-64 {
2601 | padding-left: 16rem;
2602 | }
2603 | .pl-72 {
2604 | padding-left: 18rem;
2605 | }
2606 | .pl-80 {
2607 | padding-left: 20rem;
2608 | }
2609 | .pl-96 {
2610 | padding-left: 24rem;
2611 | }
2612 | .pl-px {
2613 | padding-left: 1px;
2614 | }
2615 |
--------------------------------------------------------------------------------
/src/css/shared/modules/table.css:
--------------------------------------------------------------------------------
1 | .border-collapse {
2 | border-collapse: collapse;
3 | }
4 |
5 | .border-separate {
6 | border-collapse: separate;
7 | }
8 |
9 | .table-auto {
10 | table-layout: auto;
11 | }
12 |
13 | .table-fixed {
14 | table-layout: fixed;
15 | }
16 |
--------------------------------------------------------------------------------
/src/css/shared/modules/typhography.css:
--------------------------------------------------------------------------------
1 | /* Text Alignment */
2 | .text-left {
3 | text-align: left;
4 | }
5 |
6 | .text-center {
7 | text-align: center;
8 | }
9 |
10 | .text-right {
11 | text-align: right;
12 | }
13 |
14 | .text-justify {
15 | text-align: justify;
16 | }
17 |
18 | /* Font Size */
19 | .text-xs {
20 | font-size: 0.75rem;
21 | line-height: 1rem;
22 | }
23 |
24 | .text-sm {
25 | font-size: 0.875rem;
26 | line-height: 1.25rem;
27 | }
28 |
29 | .text-base {
30 | font-size: 1rem;
31 | line-height: 1.5rem;
32 | }
33 |
34 | .text-lg {
35 | font-size: 1.125rem;
36 | line-height: 1.75rem;
37 | }
38 |
39 | .text-xl {
40 | font-size: 1.25rem;
41 | line-height: 1.75rem;
42 | }
43 | .text-2xl {
44 | font-size: 1.5rem;
45 | line-height: 2rem;
46 | }
47 |
48 | .text-3xl {
49 | font-size: 1.875rem;
50 | line-height: 2.25rem;
51 | }
52 |
53 | .text-4xl {
54 | font-size: 2.25rem;
55 | line-height: 2.5rem;
56 | }
57 | .text-5xl {
58 | font-size: 3rem;
59 | line-height: 1;
60 | }
61 | .text-6xl {
62 | font-size: 3.75rem;
63 | line-height: 1;
64 | }
65 | .text-7xl {
66 | font-size: 4.5rem;
67 | line-height: 1;
68 | }
69 |
70 | .text-8xl {
71 | font-size: 6rem;
72 | line-height: 1;
73 | }
74 |
75 | .text-9xl {
76 | font-size: 8rem;
77 | line-height: 1;
78 | }
79 |
80 | /* Font Weight */
81 | .font-thin {
82 | font-weight: 100;
83 | }
84 | .font-extralight {
85 | font-weight: 200;
86 | }
87 | .font-light {
88 | font-weight: 300;
89 | }
90 | .font-normal {
91 | font-weight: 400;
92 | }
93 | .font-medium {
94 | font-weight: 500;
95 | }
96 | .font-semibold {
97 | font-weight: 600;
98 | }
99 | .font-bold {
100 | font-weight: 700;
101 | }
102 | .font-extrabold {
103 | font-weight: 800;
104 | }
105 | .font-black {
106 | font-weight: 900;
107 | }
108 |
109 | /* Text Color */
110 |
111 | .text-transparent {
112 | color: transparent;
113 | }
114 |
115 | .text-black {
116 | color: black;
117 | }
118 |
119 | .text-white {
120 | color: white;
121 | }
122 |
123 | .text-gray-50 {
124 | color: rgb(249, 250, 251);
125 | }
126 |
127 | .text-gray-100 {
128 | color: rgb(249, 250, 251);
129 | }
130 |
131 | .text-gray-100 {
132 | color: rgb(243, 244, 246);
133 | }
134 |
135 | .text-gray-200 {
136 | color: rgb(229, 231, 235);
137 | }
138 |
139 | .text-gray-300 {
140 | color: rgb(209, 213, 219);
141 | }
142 |
143 | .text-gray-400 {
144 | color: rgb(156, 163, 175);
145 | }
146 |
147 | .text-gray-500 {
148 | color: rgb(107, 114, 128);
149 | }
150 |
151 | .text-gray-600 {
152 | color: rgb(75, 85, 99);
153 | }
154 |
155 | .text-gray-700 {
156 | color: rgb(55, 65, 81);
157 | }
158 |
159 | .text-gray-800 {
160 | color: rgb(31, 41, 55);
161 | }
162 |
163 | .text-gray-900 {
164 | color: rgb(17, 24, 39);
165 | }
166 |
--------------------------------------------------------------------------------
/src/css/ui/index.css:
--------------------------------------------------------------------------------
1 | @import 'modules/modal.css';
2 | @import 'modules/chip.css';
3 | @import 'modules/youtubeCard.css';
4 |
--------------------------------------------------------------------------------
/src/css/ui/modules/chip.css:
--------------------------------------------------------------------------------
1 | .chip {
2 | padding: 0 12px;
3 | background-color: #efefef;
4 | border-radius: 100px;
5 | display: inline-flex;
6 | color: rgba(0, 0, 0, 0.87);
7 | align-items: center;
8 | height: 32px;
9 | font-size: 14px;
10 | cursor: pointer;
11 | border: none;
12 | }
13 |
14 | .chip .icon {
15 | font-size: 16px;
16 | color: rgba(0, 0, 0, 0.54);
17 | width: 20px;
18 | text-align: center;
19 | }
20 |
--------------------------------------------------------------------------------
/src/css/ui/modules/modal.css:
--------------------------------------------------------------------------------
1 | .modal {
2 | opacity: 0;
3 | visibility: hidden;
4 | display: flex;
5 | position: fixed;
6 | top: 0;
7 | right: 0;
8 | bottom: 0;
9 | left: 0;
10 | background: rgba(0, 0, 0, 0.5);
11 | transition: opacity 0.25s ease;
12 | z-index: 2;
13 | }
14 |
15 | .modal.open {
16 | opacity: 1;
17 | visibility: visible;
18 | }
19 |
20 | .modal-inner {
21 | transition: top 0.25s ease;
22 | width: 960px;
23 | margin: auto;
24 | overflow: auto;
25 | background: #fff;
26 | border-radius: 5px;
27 | position: relative;
28 | }
29 |
30 | .modal-close {
31 | margin: 20px;
32 | width: 20px;
33 | position: absolute;
34 | right: 10px;
35 | top: 10px;
36 | cursor: pointer;
37 | background: no-repeat;
38 | border: none;
39 | padding: 0;
40 | }
41 |
42 | svg {
43 | display: block;
44 | }
45 |
46 | .close-x {
47 | stroke: gray;
48 | fill: transparent;
49 | stroke-linecap: round;
50 | stroke-width: 5;
51 | }
52 |
53 | @media screen and (max-width: 768px) {
54 | .modal-inner {
55 | width: 90%;
56 | height: 90%;
57 | box-sizing: border-box;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/css/ui/modules/youtubeCard.css:
--------------------------------------------------------------------------------
1 | .video-wrapper {
2 | display: grid;
3 | grid-template-columns: repeat(auto-fill, 236px);
4 | grid-row-gap: 0px;
5 | grid-column-gap: 4px;
6 | justify-content: center;
7 | }
8 |
9 | .clip {
10 | height: 219px;
11 | cursor: pointer;
12 | text-decoration: none;
13 | }
14 |
15 | .clip .preview-container {
16 | width: 100%;
17 | height: 120px;
18 | position: relative;
19 | }
20 |
21 | .clip .preview-container img {
22 | width: 100%;
23 | height: 100%;
24 | object-fit: cover;
25 | }
26 |
27 | .clip .overlay-preview {
28 | position: absolute;
29 | left: 0;
30 | top: 0;
31 | right: 0;
32 | bottom: 0;
33 | }
34 |
35 | .clip .content-container {
36 | position: relative;
37 | }
38 |
39 | .clip .content-container h3 {
40 | display: -webkit-box;
41 | margin: 0;
42 | font-size: 14px;
43 | font-weight: 500;
44 | -webkit-box-orient: vertical;
45 | text-overflow: ellipsis;
46 | -webkit-line-clamp: 2;
47 | overflow: hidden;
48 | color: #0a0a0a;
49 | }
50 |
51 | .clip .content-container .channel-name {
52 | font-size: 12px;
53 | color: #606060;
54 | display: block;
55 | width: 100%;
56 | }
57 |
58 | .clip .content-container .meta p {
59 | font-size: 12px;
60 | display: inline-block;
61 | margin: 0;
62 | color: #606060;
63 | }
64 |
--------------------------------------------------------------------------------
/src/images/readme/laptop_with_youtube_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/next-step/js-youtube-classroom/ea3b9b9d2596e9421009459ea9d6d4cbd8870e73/src/images/readme/laptop_with_youtube_logo.png
--------------------------------------------------------------------------------
/src/images/readme/youtube_classroom_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/next-step/js-youtube-classroom/ea3b9b9d2596e9421009459ea9d6d4cbd8870e73/src/images/readme/youtube_classroom_preview.png
--------------------------------------------------------------------------------
/src/images/status/not_found.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/next-step/js-youtube-classroom/ea3b9b9d2596e9421009459ea9d6d4cbd8870e73/src/images/status/not_found.png
--------------------------------------------------------------------------------
/src/js/index.js:
--------------------------------------------------------------------------------
1 | const $searchButton = document.querySelector("#search-button");
2 | const $modalClose = document.querySelector(".modal-close");
3 | const $modal = document.querySelector(".modal");
4 |
5 | const onModalShow = () => {
6 | $modal.classList.add("open");
7 | };
8 |
9 | const onModalClose = () => {
10 | $modal.classList.remove("open");
11 | };
12 |
13 | $searchButton.addEventListener("click", onModalShow);
14 | $modalClose.addEventListener("click", onModalClose);
15 |
--------------------------------------------------------------------------------