├── .DS_Store
├── .vscode
└── settings.json
├── Amazing_Logo_Transition
├── index.html
├── logo.png
└── style.css
├── AmplopAnimation
├── index.html
└── style.css
├── Animated Hero Section
├── images
│ ├── arrow.png
│ ├── flat-worried-woman-have-list-credit-debts-overdue-bills-girl-reading-letter-from-collection-agency-about-financial-problems-loans-unpaid-tax-calculation-payment-expen.webp
│ ├── heroImage.jpg
│ ├── logo-white.png
│ └── photo-1598760122223-45f0f18a1bbd.avif
├── index.html
└── style.css
├── Animated_Alert_Bar
├── cross.png
├── index.html
├── script.js
├── style.css
└── tick.png
├── Anshita_styles.css
├── Aston-Martin-Landing-Page
├── images
│ ├── am-2022-concept-car.jpg
│ ├── am-valhalla.jpg
│ ├── am-valkyrie-spider.jpg
│ ├── amr21.jpg
│ ├── aston-martin-dbx.jpg
│ ├── aston-martin-logo.png
│ ├── aston-martin-logo.svg
│ └── one-77.jpg
├── index.html
├── script.js
└── style.css
├── Awesome-Animation
├── index.html
└── style.css
├── BgColorAnim
└── index.html
├── Bootstrap-Gallery
├── gallery.css
├── gallery.html
├── img1.jpg
├── img2.jpg
├── img3.jpg
├── img4.jpg
├── img5.jpg
├── img6.jpg
├── img7.jpg
├── img8.jpg
└── img9.jpg
├── CSS_Animation_Using_Javascript
├── background.jpg
├── car_body.png
├── car_wheel_left.png
├── car_wheel_right.png
├── index.html
├── scirpt.js
├── sound.mp3
├── style.css
├── track.png
└── trees.png
├── Carousel
├── index.html
└── style.css
├── Gaming_Banner
├── Images
│ ├── pexel.jpg
│ ├── waller.jpg
│ ├── waller1.jpg
│ └── waller3.jpg
├── index.html
└── style.css
├── HF 2022.css
├── New Year wish
├── Assets
│ ├── Images
│ │ └── wall.jpg
│ ├── Js
│ │ └── vanilla-tilt.js
│ └── Style.css
└── index.html
├── Online-Food.css
├── OpenStoreAnimation
├── index.html
└── style.css
├── Plotmeasurement
├── Plotmeasurement.css
├── README.md
├── RGB Game
├── README.md
├── colorGameProject.css
├── colorGameProject.js
└── index.html
├── Reset.css
├── Rotating-Gallery
├── 1.jpg
├── 2.webp
├── 3.jpg
├── 4.jpg
├── 5.webp
├── 6.jpg
├── 7.jpg
├── index.html
├── script.js
└── style.css
├── Zuxtoberfest
├── animate.css
├── animation-roll.css
├── animation-text
├── img
│ ├── abc.png
│ └── background.jpg
├── index.html
└── style.css
├── asadlu.css
├── blabla.css
├── bob.css
├── border.css
├── button_style.css
├── byskue.css
├── card.css
├── chart.css
├── css1.css
├── cssxx
├── style-1080.css
├── style-1368.css
├── style-380.css
├── style-840.css
├── style.css
└── style_login.css
├── custom-style.css
├── dam.css
├── flagicon.css
├── form.css
├── guideau.css
├── hek.css
├── landingPage
├── img
│ ├── employee.png
│ ├── hires.png
│ ├── img1.png
│ ├── img2.png
│ ├── img3.png
│ ├── jumbotron-bg.jpg
│ ├── landingpage.png
│ ├── security.png
│ └── workingspace.png
├── index.html
└── style.css
├── loader
├── index.html
└── style.css
├── login-page.html
├── login-rtl.css
├── loginpage
├── .vscode
│ └── settings.json
├── damn.jpg
├── damn1.jpg
├── index.html
└── style.css
├── modals.css
├── nan.css
├── navbar tailwind
├── index.html
└── output.css
├── navbar-changecolor.css
├── oktavianto.css
├── opening-div
├── index.html
└── style.css
├── pagination.css
├── resposive-web
├── index.html
├── main.css
└── responsive.css
├── sImpson-face
├── index.html
└── style.css
├── segitiga.css
├── sgb.css
├── simple-landing-page
├── font
│ ├── playfairdisplay-black-webfont.woff
│ ├── playfairdisplay-black-webfont.woff2
│ ├── roboto-black-webfont.woff
│ ├── roboto-black-webfont.woff2
│ ├── roboto-thin-webfont.woff
│ └── roboto-thin-webfont.woff2
├── img
│ ├── alpukad.jpg
│ ├── cery.jpg
│ ├── jeruk.jpg
│ ├── pineapple.png
│ ├── pisang.jpg
│ ├── semangka.jpg
│ └── strowberry.jpg
├── index.html
└── style
│ └── style.css
├── simple-portfolio
├── asset
│ ├── css
│ │ ├── aos.css
│ │ ├── bootstrap.min.css
│ │ └── bootstrap.min.css.map
│ ├── img
│ │ ├── cursor
│ │ │ ├── boy_apple.png
│ │ │ ├── tunjuk_apple.png
│ │ │ └── unicorn_apple.png
│ │ ├── me.webp
│ │ └── project
│ │ │ ├── cosine.webp
│ │ │ ├── linku.webp
│ │ │ ├── nyumput.webp
│ │ │ └── quran.webp
│ ├── js
│ │ ├── aos.js
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ └── main.js
│ └── scss
│ │ ├── main.css
│ │ └── main.scss
├── favicon.ico
└── index.html
├── slide-swipe.css
├── solar-eclipse
├── index.html
└── style.css
├── stamp.css
├── style anjay.css
├── style_sidebar.css
├── stylesheet.css
├── styling.css
├── text-inside-a-box
├── background.jpg
├── index.html
└── style.css
├── text-shadow.css
├── transfrom.css
├── triangle.css
├── vertical-masonry-layout-grid
├── css
│ ├── global.css
│ ├── navbar.css
│ └── style.css
├── index.html
├── js
│ └── script.js
└── readme.md
└── warr.css
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/.DS_Store
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "liveServer.settings.port": 5501
3 | }
--------------------------------------------------------------------------------
/Amazing_Logo_Transition/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Logo-Animation
10 |
11 |
12 |
13 |
14 |
15 |

16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Amazing_Logo_Transition/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Amazing_Logo_Transition/logo.png
--------------------------------------------------------------------------------
/Amazing_Logo_Transition/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | overflow: hidden;
5 | }
6 |
7 | .container {
8 | height: 100%;
9 | width: 100%;
10 | margin-inline: 50%;
11 | }
12 |
13 | .logo {
14 | cursor: pointer;
15 | width: 6rem;
16 | border-radius: 100%;
17 | overflow: hidden;
18 | }
19 |
20 | .logo img {
21 | height: 6rem;
22 | width: 12rem;
23 | transition: all 0.6s;
24 | }
25 |
26 | .logo img:hover {
27 | transform: translateX(-50%);
28 | }
--------------------------------------------------------------------------------
/AmplopAnimation/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Amplop
8 |
9 |
10 |
11 |
12 |
13 |
14 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/AmplopAnimation/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | background: #323641;
3 | }
4 |
5 | .letter-image {
6 | position: absolute;
7 | top: 50%;
8 | left: 50%;
9 | width: 200px;
10 | height: 200px;
11 | -webkit-transform: translate(-50%, -50%);
12 | -moz-transform: translate(-50%, -50%);
13 | transform: translate(-50%, -50%);
14 | cursor: pointer;
15 | }
16 |
17 | .animated-mail {
18 | position: absolute;
19 | height: 150px;
20 | width: 200px;
21 | -webkit-transition: 0.4s;
22 | -moz-transition: 0.4s;
23 | transition: 0.4s;
24 | }
25 | .animated-mail .body {
26 | position: absolute;
27 | bottom: 0;
28 | width: 0;
29 | height: 0;
30 | border-style: solid;
31 | border-width: 0 0 100px 200px;
32 | border-color: transparent transparent #5855e9 transparent;
33 | z-index: 2;
34 | }
35 | .animated-mail .top-fold {
36 | position: absolute;
37 | top: 50px;
38 | width: 0;
39 | height: 0;
40 | border-style: solid;
41 | border-width: 50px 100px 0 100px;
42 | -webkit-transform-origin: 50% 0%;
43 | -webkit-transition: transform 0.4s 0.4s, z-index 0.2s 0.4s;
44 | -moz-transform-origin: 50% 0%;
45 | -moz-transition: transform 0.4s 0.4s, z-index 0.2s 0.4s;
46 | transform-origin: 50% 0%;
47 | transition: transform 0.4s 0.4s, z-index 0.2s 0.4s;
48 | border-color: #4c43cf transparent transparent transparent;
49 | z-index: 2;
50 | }
51 | .animated-mail .back-fold {
52 | position: absolute;
53 | bottom: 0;
54 | width: 200px;
55 | height: 100px;
56 | background: #4345cf;
57 | z-index: 0;
58 | }
59 | .animated-mail .left-fold {
60 | position: absolute;
61 | bottom: 0;
62 | width: 0;
63 | height: 0;
64 | border-style: solid;
65 | border-width: 50px 0 50px 100px;
66 | border-color: transparent transparent transparent #5349e1;
67 | z-index: 2;
68 | }
69 | .animated-mail .letter {
70 | left: 20px;
71 | bottom: 0px;
72 | position: absolute;
73 | width: 160px;
74 | height: 60px;
75 | background: white;
76 | z-index: 1;
77 | overflow: hidden;
78 | -webkit-transition: 0.4s 0.2s;
79 | -moz-transition: 0.4s 0.2s;
80 | transition: 0.4s 0.2s;
81 | }
82 | .animated-mail .letter .letter-border {
83 | height: 10px;
84 | width: 100%;
85 | background: repeating-linear-gradient(-45deg, #cb5a5e, #cb5a5e 8px, transparent 8px, transparent 18px);
86 | }
87 | .animated-mail .letter .letter-title {
88 | margin-top: 10px;
89 | margin-left: 5px;
90 | height: 10px;
91 | width: 40%;
92 | background: #cb5a5e;
93 | }
94 | .animated-mail .letter .letter-context {
95 | margin-top: 10px;
96 | margin-left: 5px;
97 | height: 10px;
98 | width: 20%;
99 | background: #cb5a5e;
100 | }
101 | .animated-mail .letter .letter-stamp {
102 | margin-top: 30px;
103 | margin-left: 120px;
104 | border-radius: 100%;
105 | height: 30px;
106 | width: 30px;
107 | background: #cb5a5e;
108 | opacity: 0.3;
109 | }
110 |
111 | .shadow {
112 | position: absolute;
113 | top: 200px;
114 | left: 50%;
115 | width: 400px;
116 | height: 30px;
117 | transition: 0.4s;
118 | transform: translateX(-50%);
119 | -webkit-transition: 0.4s;
120 | -webkit-transform: translateX(-50%);
121 | -moz-transition: 0.4s;
122 | -moz-transform: translateX(-50%);
123 | border-radius: 100%;
124 | background: radial-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
125 | }
126 |
127 | .letter-image:hover .animated-mail {
128 | transform: translateY(50px);
129 | -webkit-transform: translateY(50px);
130 | -moz-transform: translateY(50px);
131 | }
132 | .letter-image:hover .animated-mail .top-fold {
133 | transition: transform 0.4s, z-index 0.2s;
134 | transform: rotateX(180deg);
135 | -webkit-transition: transform 0.4s, z-index 0.2s;
136 | -webkit-transform: rotateX(180deg);
137 | -moz-transition: transform 0.4s, z-index 0.2s;
138 | -moz-transform: rotateX(180deg);
139 | z-index: 0;
140 | }
141 | .letter-image:hover .animated-mail .letter {
142 | height: 180px;
143 | }
144 | .letter-image:hover .shadow {
145 | width: 250px;
146 | }
--------------------------------------------------------------------------------
/Animated Hero Section/images/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Animated Hero Section/images/arrow.png
--------------------------------------------------------------------------------
/Animated Hero Section/images/flat-worried-woman-have-list-credit-debts-overdue-bills-girl-reading-letter-from-collection-agency-about-financial-problems-loans-unpaid-tax-calculation-payment-expen.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Animated Hero Section/images/flat-worried-woman-have-list-credit-debts-overdue-bills-girl-reading-letter-from-collection-agency-about-financial-problems-loans-unpaid-tax-calculation-payment-expen.webp
--------------------------------------------------------------------------------
/Animated Hero Section/images/heroImage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Animated Hero Section/images/heroImage.jpg
--------------------------------------------------------------------------------
/Animated Hero Section/images/logo-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Animated Hero Section/images/logo-white.png
--------------------------------------------------------------------------------
/Animated Hero Section/images/photo-1598760122223-45f0f18a1bbd.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Animated Hero Section/images/photo-1598760122223-45f0f18a1bbd.avif
--------------------------------------------------------------------------------
/Animated Hero Section/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | NUTORS PROJECT
7 |
8 |
9 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |

33 |
41 |
58 |
59 |
60 |
OUTDOORS
61 |
IS WHERE LIFE HAPPENS
62 |
63 |
64 |
65 |
66 | LET'S GO
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/Animated Hero Section/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | padding: 0px;
3 | margin: 0;
4 | }
5 |
6 | .logo {
7 | border: 0.0001px solid black;
8 | padding: 15px;
9 | border-radius: 100px;
10 | backdrop-filter: blur(50px);
11 | height: 4vh;
12 | }
13 |
14 | .logo:hover {
15 | backdrop-filter: blur(50px);
16 | animation: rotation 1s linear 0s 1 forwards alternate;
17 | }
18 | .nav-bar {
19 | padding: 20px 50px 20px 50px;
20 | margin: 0px auto 0px auto;
21 | display: flex;
22 | justify-content: space-between;
23 | align-items: center;
24 | }
25 |
26 | .nav-items {
27 | font-weight: 500;
28 | display: flex;
29 | gap: 1.3rem;
30 | align-items: center;
31 | }
32 |
33 | .nav-items a {
34 | border-radius: 100px;
35 | backdrop-filter: blur(9px);
36 | background-color: rgba(255, 255, 255, 0.089);
37 | padding: 12px;
38 | font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande",
39 | "Lucida Sans Unicode", Geneva, Verdana, sans-serif;
40 | color: white;
41 | font-weight: 300;
42 | text-decoration: none;
43 | }
44 |
45 | .nav-items a:hover {
46 | backdrop-filter: blur(20px);
47 | box-shadow: -3px 3px 3px 0px rgb(0, 0, 0);
48 | transform: translateY(-2px);
49 | }
50 |
51 | .nav-items a:active {
52 | backdrop-filter: blur(20px);
53 | box-shadow: 0px 1px 5px 1px rgb(0, 0, 0);
54 | transform: translateY(2px);
55 | }
56 | .main-heading {
57 | font-family: "Snowburst One", cursive;
58 | font-size: 100px;
59 | color: white;
60 | }
61 |
62 | .sub-heading {
63 | font-family: "Snowburst One", cursive;
64 | color: white;
65 | font-size: 32px;
66 | }
67 |
68 | .hero {
69 | text-align: left;
70 | transform: translate(0px 0px);
71 | position: absolute;
72 | top: 20%;
73 | left: 3%;
74 | display: flex;
75 | flex-direction: column;
76 | gap: 30px;
77 | }
78 |
79 | .hero-button {
80 | backface-visibility: hidden;
81 | margin-top: 20px;
82 | /* animation: myanimation 0.5s ease-in 2s 1 forwards alternate; */
83 | width: fit-content;
84 | padding: 18px;
85 | color: white;
86 | font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande",
87 | "Lucida Sans Unicode", Geneva, Verdana, sans-serif;
88 | background-color: rgba(255, 255, 255, 0);
89 | backdrop-filter: blur(8px);
90 | font-size: 18px;
91 | letter-spacing: 1px;
92 | border: none;
93 | border-radius: 100px;
94 | font-weight: bold;
95 | }
96 | .hero-button:hover {
97 | transform: translateY(-2px);
98 | backdrop-filter: blur(20px);
99 | box-shadow: -1px 3px 3px 1px rgba(0, 0, 0, 0.564);
100 | }
101 |
102 | .hero-button:active {
103 | transform: translateY(2px);
104 | box-shadow: -1px 3px 3px 1px black;
105 | }
106 | .hero-section {
107 | width: 100vw;
108 | height: 100vh;
109 | background-image: linear-gradient(rgba(34, 238, 68, 0), rgba(51, 248, 255, 0)),
110 | url(images/heroImage.jpg);
111 | position: fixed;
112 | background-clip: linear;
113 | }
114 |
115 | .lets-go {
116 | animation: letsgo 3s linear 0s 1 forwards alternate;
117 | position: absolute;
118 | top: 70%;
119 | font-size: 44px;
120 | left: 3%;
121 | transform: rotate(-20deg);
122 | color: white;
123 | font-family: "Snowburst One", cursive;
124 | }
125 | @keyframes myanimation {
126 | 0% {
127 | opacity: 0;
128 | transform: translateX(-100px);
129 | }
130 | 80% {
131 | opacity: 1;
132 | transform: translateX(20%);
133 | }
134 | 100% {
135 | opacity: 1;
136 | transform: translateX(0px);
137 | }
138 | }
139 |
140 | @keyframes rotation {
141 | 0% {
142 | transform: rotate(0deg);
143 | }
144 |
145 | 70% {
146 | transform: rotate(120deg);
147 | }
148 |
149 | 90% {
150 | transform: rotate(180deg);
151 | }
152 |
153 | 100% {
154 | transform: rotate(360deg);
155 | }
156 | }
157 | @keyframes moveInRight {
158 | 0% {
159 | opacity: 0;
160 | transform: translateX(-100px);
161 | }
162 | 80% {
163 | opacity: 1;
164 | transform: translateX(100%);
165 | }
166 | 100% {
167 | opacity: 1;
168 | transform: translateX(0px);
169 | }
170 | }
171 | @keyframes letsgo {
172 | 0% {
173 | transform: translateX(-200px);
174 | opacity: 0;
175 | }
176 |
177 | 25% {
178 | transform: translateX(30px);
179 | opacity: 1;
180 | }
181 |
182 | 40% {
183 | transform: translateX(70px);
184 | opacity: 1;
185 | }
186 |
187 | 60% {
188 | transform: translateX(180px);
189 | opacity: 0;
190 | }
191 |
192 | 70% {
193 | transform: translateX(320px);
194 | opacity: 0;
195 | }
196 |
197 | 80% {
198 | transform: translateX(470px);
199 | opacity: 0;
200 | }
201 |
202 | 90% {
203 | opacity: 0;
204 | }
205 | 100% {
206 | transform: translateX(1400px);
207 | opacity: 0;
208 | }
209 | }
210 |
211 | .menu {
212 | background-color: transparent;
213 | border: none;
214 | cursor: pointer;
215 | display: none;
216 | padding: 0;
217 | }
218 | .line {
219 | fill: none;
220 | stroke: rgb(255, 255, 255);
221 | transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
222 | stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
223 | }
224 | .line1 {
225 | stroke-dasharray: 60 207;
226 | stroke-width: 2;
227 | }
228 | .line2 {
229 | stroke-dasharray: 60 60;
230 | stroke-width: 2;
231 | }
232 | .line3 {
233 | stroke-dasharray: 60 207;
234 | stroke-width: 2;
235 | }
236 | .opened .line1 {
237 | stroke-dasharray: 90 207;
238 | stroke-dashoffset: -134;
239 | stroke-width: 6;
240 | }
241 | .opened .line2 {
242 | stroke-dasharray: 1 60;
243 | stroke-dashoffset: -30;
244 | stroke-width: 6;
245 | }
246 | .opened .line3 {
247 | stroke-dasharray: 90 207;
248 | stroke-dashoffset: -134;
249 | stroke-width: 6;
250 | }
251 | @media (max-width: 850px) {
252 | #hamburger {
253 | display: block;
254 | }
255 | .nav-items {
256 | display: none;
257 | }
258 |
259 | .main-heading {
260 | font-size: 56px;
261 | }
262 |
263 | .sub-heading {
264 | font-size: 18px;
265 | }
266 |
267 | .hero {
268 | justify-content: center;
269 | margin: auto;
270 | top: 30%;
271 | left: 50%;
272 | transform: translate(-50%);
273 | text-align: center;
274 | }
275 | .nav-bar {
276 | padding: 20px 20px 0px 20px;
277 | }
278 | .hero-section {
279 | height: 100vh;
280 | width: 100vw;
281 | }
282 |
283 | .menu {
284 | display: flex;
285 | }
286 | }
287 |
--------------------------------------------------------------------------------
/Animated_Alert_Bar/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Animated_Alert_Bar/cross.png
--------------------------------------------------------------------------------
/Animated_Alert_Bar/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Document
10 |
11 |
12 |
13 |
14 |
15 |

16 |
Alert Message
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Animated_Alert_Bar/script.js:
--------------------------------------------------------------------------------
1 | let btn = document.getElementById("btnClick");
2 | let notification = document.getElementById("notiUpper");
3 | let crossMenu = document.getElementById("menuOff");
4 | btn.addEventListener("click", () => {
5 | notification.style.top = 0;
6 | });
7 | crossMenu.addEventListener("click", () => {
8 | notification.style.top = "-25%";
9 | });
10 |
--------------------------------------------------------------------------------
/Animated_Alert_Bar/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | body {
7 | font-family: monospace;
8 | }
9 |
10 | .container {
11 | overflow-x: hidden;
12 | height: 100vh;
13 | width: 100%;
14 | display: flex;
15 | justify-content: space-between;
16 | text-align: center;
17 | flex-direction: column;
18 | }
19 |
20 | .upper {
21 | position: relative;
22 | top: -12%;
23 | background-color: white;
24 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.69);
25 | padding: 1rem 0;
26 | text-align: center;
27 | margin-top: 1rem;
28 | margin-inline: 30%;
29 | border: .125rem solid white;
30 | font-size: 1.2rem;
31 | letter-spacing: .1rem;
32 | transition: all 0.6s ease-in-out;
33 | }
34 |
35 | .upper span {
36 | position: absolute;
37 | top: .6rem;
38 | left: .5rem;
39 | }
40 |
41 | #menuOff {
42 | height: 1rem;
43 | width: 1rem;
44 | position: absolute;
45 | top: .6rem;
46 | right: .5rem;
47 | cursor: pointer;
48 | }
49 |
50 | .upper span img {
51 | height: 2rem;
52 | width: 2rem;
53 | }
54 |
55 | .lower {
56 | height: 60%;
57 | }
58 |
59 | .btn {
60 | text-transform: uppercase;
61 | cursor: pointer;
62 | padding: 1rem 3rem;
63 | font-size: 1.5rem;
64 | background-color: red;
65 | color: #fff;
66 | }
67 |
68 | @media screen and (max-width:650px) {
69 | .upper {
70 | text-align: center;
71 | margin-top: 2rem;
72 | margin-inline: 15%;
73 | font-size: 1.2rem;
74 | width: 70%;
75 | }
76 | }
77 |
78 | @media screen and (max-width:350px) {
79 | .upper {
80 | text-align: center;
81 | margin-top: 2rem;
82 | margin-inline: 0;
83 | margin-left: 2rem;
84 | font-size: 1.2rem;
85 | width: 80%;
86 | }
87 | }
--------------------------------------------------------------------------------
/Animated_Alert_Bar/tick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Animated_Alert_Bar/tick.png
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/images/am-2022-concept-car.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Aston-Martin-Landing-Page/images/am-2022-concept-car.jpg
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/images/am-valhalla.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Aston-Martin-Landing-Page/images/am-valhalla.jpg
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/images/am-valkyrie-spider.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Aston-Martin-Landing-Page/images/am-valkyrie-spider.jpg
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/images/amr21.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Aston-Martin-Landing-Page/images/amr21.jpg
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/images/aston-martin-dbx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Aston-Martin-Landing-Page/images/aston-martin-dbx.jpg
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/images/aston-martin-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Aston-Martin-Landing-Page/images/aston-martin-logo.png
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/images/one-77.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FirmanKurniawan/CSS-Projects/bfd22d16984e1215bcf05f08429daf87a2e9cd6c/Aston-Martin-Landing-Page/images/one-77.jpg
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/script.js:
--------------------------------------------------------------------------------
1 | const sliderContainer = document.querySelector(".slider-container");
2 | const slideRight = document.querySelector(".right-slide");
3 | const slideLeft = document.querySelector(".left-slide");
4 | const upButton = document.querySelector(".up-button");
5 | const downButton = document.querySelector(".down-button");
6 | const slidesLength = slideRight.querySelectorAll("div").length;
7 |
8 | let activeSlideIndex = 0;
9 |
10 | slideLeft.style.top = `-${(slidesLength - 1) * 100}vh`;
11 |
12 | const changeSlide = (direction) => {
13 | const sliderHeight = sliderContainer.clientHeight;
14 | if (direction === "up") {
15 | activeSlideIndex++;
16 | if (activeSlideIndex > slidesLength - 1)
17 | activeSlideIndex = 0;
18 | } else if (direction === "down") {
19 | activeSlideIndex--;
20 | if (activeSlideIndex < 0)
21 | activeSlideIndex = slidesLength - 1;
22 | }
23 |
24 | slideRight.style.transform = `translateY(-${activeSlideIndex * sliderHeight
25 | }px)`;
26 | slideLeft.style.transform = `translateY(${activeSlideIndex * sliderHeight
27 | }px)`;
28 | };
29 |
30 | upButton.addEventListener("click", () => changeSlide("up"));
31 | downButton.addEventListener("click", () => changeSlide("down"));
32 |
33 | // setInterval(() => {
34 | // changeSlide("up");
35 | // }, 3000);
--------------------------------------------------------------------------------
/Aston-Martin-Landing-Page/style.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --Optima: 'Optima', sans-serif;
3 | }
4 |
5 | * {
6 | margin: 0%;
7 | padding: 0%;
8 | box-sizing: border-box;
9 | transition: 0.3s all ease-out;
10 | color: #ffffff;
11 | }
12 |
13 | html,
14 | body {
15 | overflow-x: hidden;
16 | font-family: var(--Optima);
17 | -webkit-text-size-adjust: 100%;
18 | -moz-text-size-adjust: 100%;
19 | -ms-text-size-adjust: 100%;
20 | text-size-adjust: 100%;
21 | -webkit-font-smoothing: antialiased;
22 | }
23 |
24 |
25 | ul,
26 | li {
27 | list-style: none;
28 | }
29 |
30 | a {
31 | text-decoration: none;
32 | }
33 |
34 | /* Navigation Bar */
35 | .navbar__header {
36 | background: rgb(0, 0, 0);
37 | background: -moz-linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.1829774145986519) 70%, rgba(0, 0, 0, 0.35384576193758754) 100%);
38 | background: -webkit-linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.1829774145986519) 70%, rgba(0, 0, 0, 0.35384576193758754) 100%);
39 | background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.1829774145986519) 70%, rgba(0, 0, 0, 0.35384576193758754) 100%);
40 | position: absolute;
41 | z-index: 100;
42 | width: 100vw;
43 | }
44 |
45 | nav {
46 | display: flex;
47 | justify-content: space-between;
48 | padding: 1rem 0.5rem 0.7rem 0.5rem;
49 | }
50 |
51 | nav ul {
52 | display: flex;
53 | align-items: center;
54 | }
55 |
56 | nav ul li {
57 | margin: 0 1rem;
58 | }
59 |
60 | header h1 {
61 | font-size: 1.5rem;
62 | font-weight: 200;
63 | margin: 0 1rem 0 0;
64 | }
65 |
66 | header {
67 | height: 35px;
68 | margin: 0 1rem 0 0;
69 | }
70 |
71 | header a img {
72 | height: 100%;
73 | width: 100%;
74 | }
75 |
76 | /* ============== */
77 |
78 | .left-slide>div:nth-child(1) {
79 | background-color: #004042;
80 | }
81 |
82 | .left-slide>div:nth-child(2) {
83 | background-color: #00716F;
84 | }
85 |
86 | .left-slide>div:nth-child(3) {
87 | background-color: #334D49;
88 | }
89 |
90 | .left-slide>div:nth-child(4) {
91 | background-color: #006F62;
92 | }
93 |
94 | .slider-container {
95 | position: relative;
96 | overflow: hidden;
97 | width: 100vw;
98 | height: 100vh;
99 | }
100 |
101 | .left-slide {
102 | height: 100%;
103 | width: 35%;
104 | position: absolute;
105 | top: 0;
106 | left: 0;
107 | transition: transform 1s ease-out;
108 | -webkit-transition: transform 1s ease-out;
109 | -moz-transition: transform 1s ease-out;
110 | -ms-transition: transform 1s ease-out;
111 | -o-transition: transform 1s ease-out;
112 | }
113 |
114 | .left-slide>div {
115 | height: 100%;
116 | width: 100%;
117 | display: flex;
118 | flex-direction: column;
119 | /* align-items: center; */
120 | /* to be in consideration */
121 | justify-content: center;
122 | color: #fff;
123 | }
124 |
125 | .tab__heading {
126 | padding: 1rem;
127 | margin: -30px 0 10px 0;
128 | font-size: 1.5rem;
129 | }
130 |
131 | .tab__heading h6 {
132 | font-weight: 200;
133 | margin: 0 0 0.8rem 0;
134 | font-size: 0.8rem;
135 | }
136 |
137 | .tab__heading h2 {
138 | font-weight: 200;
139 | }
140 |
141 | .news__box {
142 | padding: 1rem;
143 | }
144 |
145 | .nb__heading1 {
146 | font-size: 1.3rem;
147 | line-height: 3rem;
148 | }
149 |
150 | .nb__heading2 {
151 | margin: 1.3rem 0 0 0;
152 | font-size: 1rem;
153 | }
154 |
155 | .nb__paragraph {
156 | margin: 0.6rem 0 1.2rem 0;
157 | font-size: 0.8rem;
158 | line-height: 1.5rem;
159 | }
160 |
161 | .nb__button {
162 | font-family: var(--Optima);
163 | position: absolute;
164 | right: 40px;
165 | margin: 1rem 0;
166 | }
167 |
168 | .right-slide {
169 | height: 100%;
170 | position: absolute;
171 | top: 0;
172 | left: 35%;
173 | width: 65%;
174 | transition: transform 1s ease-out;
175 | -webkit-transition: transform 1s ease-out;
176 | -moz-transition: transform 1s ease-out;
177 | -ms-transition: transform 1s ease-out;
178 | -o-transition: transform 1s ease-out;
179 | }
180 |
181 | .right-slide>div:nth-child(1) {
182 | /* background-image: url(/images/am-2022-concept-car.jpg); */
183 | background-image: url(/images/amr21.jpg);
184 | }
185 |
186 | .right-slide>div:nth-child(2) {
187 | background-image: url(/images/aston-martin-dbx.jpg);
188 | }
189 |
190 | .right-slide>div:nth-child(3) {
191 | background-image: url(/images/am-valkyrie-spider.jpg);
192 | }
193 |
194 | .right-slide>div:nth-child(4) {
195 | background-image: url(/images/am-valhalla.jpg);
196 | }
197 |
198 | .right-slide>div {
199 | background-repeat: no-repeat;
200 | background-size: cover;
201 | background-position: center center;
202 | height: 100%;
203 | width: 100%;
204 | }
205 |
206 | .slider-container button {
207 | background: #059862;
208 | border: 0;
209 | color: #1B1A17;
210 | font-size: 1rem;
211 | padding: 1rem;
212 | cursor: pointer;
213 | }
214 |
215 | .slider-container button:hover {
216 | color: #252522;
217 | }
218 |
219 | .slider-container button:focus {
220 | outline: none;
221 | }
222 |
223 | .slider-container .action-buttons button {
224 | position: absolute;
225 | left: 35%;
226 | top: 25%;
227 | z-index: 100;
228 | }
229 |
230 | .slider-container .action-buttons .down-button {
231 | transform: translateX(-100%);
232 | -webkit-transform: translateX(-100%);
233 | -moz-transform: translateX(-100%);
234 | -ms-transform: translateX(-100%);
235 | -o-transform: translateX(-100%);
236 | border-top-left-radius: 5px;
237 | border-bottom-left-radius: 5px;
238 | }
239 |
240 | .slider-container .action-buttons .up-button {
241 | transform: translateY(-100%);
242 | -webkit-transform: translateY(-100%);
243 | -moz-transform: translateY(-100%);
244 | -ms-transform: translateY(-100%);
245 | -o-transform: translateY(-100%);
246 | border-top-right-radius: 5px;
247 | border-bottom-right-radius: 5px;
248 | }
--------------------------------------------------------------------------------
/Awesome-Animation/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Awesome animation - CSS only
8 |
9 |
10 |
11 |
12 | CSS
13 | is
14 | Awesome
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Awesome-Animation/style.css:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css?family=Montserrat");
2 |
3 | :root {
4 | --length: 6s; /*adjust to change speed */
5 | --loop: infinite;
6 | }
7 |
8 | *,
9 | *:before,
10 | *:after {
11 | box-sizing: border-box;
12 | }
13 |
14 | body {
15 | margin: 0;
16 | font-family: "Montserrat", sans-serif;
17 | display: block;
18 | font-size: 3em;
19 | height: 100vh;
20 | overflow: hidden;
21 | padding-top: 50px;
22 | }
23 |
24 | span {
25 | display: block;
26 | }
27 |
28 | /* Background box */
29 |
30 | #box {
31 | width: 200px;
32 | height: 200px;
33 | margin: 30vh auto;
34 | border: 1px solid #333;
35 | padding: 0 10px;
36 | line-height: 1.4em;
37 | text-transform: uppercase;
38 | text-align: left;
39 | animation: awe-box calc(var(--length) / 2) var(--loop);
40 | }
41 |
42 | @keyframes awe-box {
43 | 0% {
44 | transform: scale(1);
45 | }
46 | 30% {
47 | transform: scale(1);
48 | border-radius: 0%;
49 | background: #fff;
50 | color: #111;
51 | }
52 | 35% {
53 | border-radius: 50%;
54 | transform: scale(2);
55 | background: #111;
56 | color: #fff;
57 | box-shadow: 0 0 0 rgba(94, 245, 94, 1);
58 | }
59 | 40% {
60 | transform: scale(2);
61 | background: #111;
62 | color: #fff;
63 | box-shadow: 0 0 15px rgba(250, 144, 104, 1);
64 | }
65 | 50% {
66 | border-radius: 0%;
67 | transform: scale(1);
68 | background: #fff;
69 | color: #111;
70 | box-shadow: 0 0 65px rgba(94, 187, 245, 1);
71 | }
72 | 56% {
73 | border-radius: 0%;
74 | transform: scale(1);
75 | }
76 | 66% {
77 | border-radius: 0%;
78 | transform: scale(1);
79 | box-shadow: 0 0 0 rgba(94, 187, 245, 1);
80 | }
81 | 70% {
82 | border-radius: 0%;
83 | transform: scale(1);
84 | }
85 | 100% {
86 | border-radius: 0%;
87 | transform: scale(1);
88 | }
89 | }
90 |
91 | /* "CSS" Move */
92 |
93 | #first {
94 | animation: css var(--length) var(--loop);
95 | }
96 |
97 | @keyframes css {
98 | 0% {
99 | transform: translate(0, 0);
100 | }
101 | 15% {
102 | transform: translate(0, 0);
103 | }
104 | 20% {
105 | transform: translate(65px, 0);
106 | }
107 | 25% {
108 | transform: translate(65px, 65px);
109 | }
110 | 30% {
111 | transform: translate(0, 65px);
112 | }
113 | 70% {
114 | transform: translate(0, 65px);
115 | }
116 | 75% {
117 | transform: translate(0, 0);
118 | }
119 | 100% {
120 | transform: translate(0, 0);
121 | }
122 | }
123 |
124 | /* "Is" Move */
125 |
126 | #second {
127 | animation: is var(--length) var(--loop);
128 | }
129 |
130 | @keyframes is {
131 | 0% {
132 | transform: translate(0, 0);
133 | }
134 | 15% {
135 | transform: translate(0, 0);
136 | }
137 | 20% {
138 | transform: translate(0, -65px);
139 | }
140 | 30% {
141 | transform: translate(0, -65px);
142 | }
143 | 65% {
144 | transform: translate(0, -65px);
145 | }
146 | 68% {
147 | transform: translate(105px, -65px);
148 | }
149 | 73% {
150 | transform: translate(105px, 0);
151 | }
152 | 80% {
153 | transform: translate(0, 0);
154 | }
155 | 100% {
156 | transform: translate(0, 0);
157 | }
158 | }
159 |
160 | /* "Awesome" Slide */
161 |
162 | #third {
163 | animation: awesome var(--length) var(--loop);
164 | }
165 |
166 | @keyframes awesome {
167 | 0% {
168 | transform: translateX(0);
169 | }
170 | 20% {
171 | transform: translateX(0);
172 | }
173 | 35% {
174 | transform: translateX(-110px);
175 | }
176 | 50% {
177 | transform: translateX(-110px);
178 | }
179 | 60% {
180 | transform: translateX(-110px);
181 | }
182 | 70% {
183 | transform: translateX(-110px);
184 | }
185 | 85% {
186 | transform: translateX(0);
187 | }
188 | 100% {
189 | transform: translateX(0);
190 | }
191 | }
192 |
193 | /* "?" Fade in */
194 |
195 | #third::after {
196 | content: "?";
197 | display: block;
198 | color: #fa7268; /* Pantones on fire */
199 | width: 50px;
200 | float: right;
201 | margin-top: -67px;
202 | margin-right: -140px;
203 | animation: third-after var(--length) var(--loop);
204 | opacity: 0;
205 | }
206 |
207 | @keyframes third-after {
208 | 0% {
209 | opacity: 0;
210 | }
211 | 30% {
212 | opacity: 0;
213 | }
214 | 35% {
215 | opacity: 1;
216 | }
217 | 50% {
218 | opacity: 1;
219 | }
220 | 65% {
221 | opacity: 1;
222 | }
223 | 70% {
224 | opacity: 0;
225 | }
226 | 100% {
227 | opacity: 0;
228 | }
229 | }
230 |
231 | /* Timer */
232 |
233 | body::before {
234 | content: "";
235 | background: #d02b30;
236 | width: 2vw;
237 | height: 0.2vh;
238 | display: block;
239 | position: fixed;
240 | top: 0;
241 | animation: timing calc(var(--length) * 6) 1 linear;
242 | }
243 |
244 | @keyframes timing {
245 | 0% {
246 | transform: scaleX(1);
247 | }
248 | 100% {
249 | transform: scaleX(100);
250 | }
251 | }
252 |
253 | /* Fade to white */
254 |
255 | body::after {
256 | content: "That's all folks";
257 | display: block;
258 | position: fixed;
259 | top: 0;
260 | width: 100vw;
261 | height: 100vh;
262 | background: #fff;
263 | text-align: center;
264 | animation: fade-bg calc(var(--length) / 2) forwards;
265 | animation-delay: calc(var(--length) * 6);
266 | opacity: 0;
267 | line-height: 100vh;
268 | }
269 |
270 | @keyframes fade-bg {
271 | 0% {
272 | opacity: 0;
273 | color: #fff;
274 | }
275 | 30% {
276 | opacity: 1;
277 | color: #fff;
278 | filter: blur(20px);
279 | }
280 | 100% {
281 | opacity: 1;
282 | color: #222;
283 | filter: blur(0);
284 | }
285 | }
286 |
--------------------------------------------------------------------------------
/BgColorAnim/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
19 | Animation of background-color
20 |
21 | Gradually change the background-color from red to blue:
22 |
23 |
24 |
25 | Note: CSS Animations do not work in Internet Explorer 9 and earlier versions.
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Bootstrap-Gallery/gallery.css:
--------------------------------------------------------------------------------
1 | .container-fluid{
2 | background-color:black;
3 | }
4 | .row {
5 | display: flex;
6 | flex-wrap: wrap;
7 | padding: 0 4px;
8 | }
9 | .column {
10 | flex: 25%;
11 | max-width: 33.3%;
12 | padding: 0 4px;
13 | }
14 | .column img {
15 | margin-top: 8px;
16 | vertical-align: middle;
17 | width: 100%;
18 | border-radius: 5px;
19 | cursor: pointer;
20 | transition: 0.3s linear;
21 | }
22 | .column img:hover {
23 | filter: grayscale(1) brightness(0.5);
24 | }
25 | @media screen and (max-width: 800px) {
26 | .column {
27 | flex: 50%;
28 | max-width: 50%;
29 | }
30 | }
31 | @media screen and (max-width: 600px) {
32 | .column {
33 | flex: 100%;
34 | max-width: 100%;
35 | }
36 | .column img {
37 | filter: grayscale(0) brightness(1);
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Bootstrap-Gallery/gallery.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | image gallery
5 |
6 |
7 |
26 |
27 |