Bere a miwiee adwuma bi a na ɛhwehwɛ sɛ misua biribiara a metumi fa CSS ne SVG animations ho no, mifii ase kyerɛw saa nsɛm a ɛtoatoa so yi faa Smashing Animations ne “How Classic Cartoons Inspire Modern CSS” ho. Sɛ mɛwie afe yi a, mepɛ sɛ mekyerɛ wo sɛdeɛ wode nnɛyi CSS bedi dwuma de ayɛ saa element a ɛma Toon Titles nya nkɛntɛnsoɔ kɛseɛ no: wɔn typography. Title Adwini Nsusuwii Wɔ 1920 mfe no mu kommyɛ ne ’30 mfe no mfiase mu hɔ no, sɛnea wɔkyerɛw sini bi asɛmti krataa no maa adwene bi bae, na ɛde tebea no sii hɔ, na ɛkaee atiefo bi sini ko a wɔatua ho ka sɛ wɔbɛhwɛ.
Ná cartoon title cards nso yɛ branding, adwene, ne scene-setting, na na wɔabobɔ ne nyinaa ayɛ no biako. Wɔ mfe a edi kan no mu, bere a na studio akɛse sikasɛm yɛ kɛse no, na saa asɛmti nkrataa yi taa yɛ mfonini ne mfonini.
Nanso bere a television nyaa nkɔso wɔ 1950 mfe no mu no, sikasɛm nhyehyɛe so tew, na nkrataa a mfoniniyɛfo te sɛ Lawrence “Art” Goble yɛe no faa kasa foforo a wɔde aniwa hu, na ɛbɛyɛɛ mfonini, wɔayɛ no sɛnea wɔyɛ no, na ɛnyɛ nea ɛyɛ nwonwa kɛse. Hyɛ no nsow: Lawrence “Adwinni” Goble yɛ Amerikafo akokodurufo a wɔtaa bu wɔn ani gu wɔn so wɔ afeha no mfinimfini mfoniniyɛ mu no mu biako. Ɔyɛɛ adwuma maa Hanna-Barbera titiriw wɔ ne mfe a enyaa nkɛntɛnso kɛse wɔ 1950 ne 1960 mfe no mu. Ná Goble nyɛ obi a ɔyɛ nnipa a wɔyɛ wɔn ho mfonini. Na ne dwumadi ne sɛ ɔbɛma wim tebea aba, enti ɔyɛɛ nneɛma a atwa yɛn ho ahyia ho nhyehyɛe maa The Flintstones, Huckleberry Hound, Quick Draw McGraw, ne Yogi Bear, ne asɛmti nkrataa a wɔde bue ano a ɛde ɛnne no sii hɔ. N’asɛmti nkrataa a mfonini ahorow a wɔde ahyɛnsode akata so no boa ma wɔkyerɛkyerɛɛ Hanna-Barbera hwɛbea a ɛyɛ agyiraehyɛde no mu. Goble’s adwini a ɔyɛ maa nnipa te sɛ Quick Draw McGraw ne Yogi Bear no tu mpɔn wɔ TV nketewa so. Sɛ́ anka ɔbɛsan ayɛ still a efi cartoon no mu no, ɔde n’adwene sii adwene biako a emu yɛ den a ɔde bɛma so — mpɛn pii no wɔ silhouette mu — a ɛkyere ne titiriw no. Wɔ “The Buzzin’ Bear” mu no, Yogi de helikopta twam. Ɔhuruw kɔ, pic-a-nic kɛntɛn wɔ ne nsam, wɔ “Bear on a Picnic” mu, na ne “Prize Fight Fright” nti, Yogi de asɛmti no mu nsɛm no to adaka mu.
Esiane sɛ na Goble’s single frames no ntumi mfa ne ho nto so nti, na ɛsɛ sɛ ɛma obi nya adwene, hyehyɛ tebea no, na ɛkyerɛkyerɛ asɛm bi mu. Wɔde kɔla a ɛyɛ tratraa, mfonini ahorow, ne nkyerɛwee a wɔtaa de ka adwinni no ho na ɛyɛɛ eyi.
Sɛ́ adwumfo a wɔyɛ adwuma wɔ wɛb so no, toon titles betumi akyerɛkyerɛ yɛn pii afa sɛnea yɛbɛda brand bi nipasu adi, ama yɛanya adwene a edi kan, na yɛde akwanhwɛ ahorow asi hɔ ama obi osuahu a ɔde di dwuma wɔ ade anaa wɛbsaet bi mu. Yebetumi asua biribi afi adwumfo no akwan a wɔfa so yɛ frankaa a etu mpɔn, landing-page headers, ne mpo good ol’ fashioned splash screens. Toon Title Nkyerɛwde a Wɔde Hyehyɛ Cartoon title cards kyerɛ sɛnea type ne mfonini a wɔde ka bom no de punch a header anaa ɔbran hia no ma. Ɛnam nsa kakraa bi a ɛwɔ text-shadow, text-stroke, ne transform tricks nti, nnɛyi CSS ma wo tap kɔ saa ahoɔden koro no ara mu.
Toon Nkyerɛwee Asɛmti Generator no Bere a merekyerɛw saa asɛm yi fã bi no, mihui sɛ ɛbɛyɛ nea mfaso wɔ so sɛ menya adwinnade bi a wɔde bɛma nsɛm a wɔayɛ no sɛnea ɛte te sɛ cartoon asɛmti ahorow a m’ani gye ho kɛse no. Enti meyɛɛ biako. Me Toon Text Title Generator ma wotumi sɔ kɔla, nkyerɛwde, ne nkyerɛwee sunsuma pii hwɛ. Wubetumi asiesie paint nhyehyɛe, de nkyerɛwde ntam kwan adi dwuma, ahwɛ wo nkyerɛwee no wɔ nhwɛsode nkyerɛwde ahorow a woapaw mu, na afei woayɛ CSS a wɔayɛ no kɔ wo clipboard no so tẽẽ de adi dwuma wɔ adwuma bi mu. Toon Asɛmti CSS Wubetumi ayɛ CSS a Toon Text Title Generator de ma wo no copy-paste kɛkɛ. Nanso momma yɛnhwɛ nea ɛyɛ no yiye. Text sunsuma a wɔde kyerɛw nsɛm Hwɛ type a ɛwɔ saa asɛmti yi mu a efi Augie Doggie’s episode “Yuk-Yuk Duck,” a ne nkyerɛwde kɔkɔɔ a ɛyɛ mmerɛw ne sunsuma a ɛyɛ tumm, ɛyɛ den, a ɛyɛ offset a ɛma no so fi akyi na ɛma ɛyɛ adwemmɔne sɛ emu dɔ.
Ebia wunim dedaw sɛ text-shadow gye gyinapɛn anan tom: (1) horizontal ne (2) vertical offsets, (3) blur, ne (4) kɔla a ebetumi ayɛ den anaasɛ semi-transparent. Saa offset values no betumi ayɛ papa anaa bɔne, enti metumi de sunsuma a ɛyɛ den a wɔatwe akɔ fam ne nifa ayɛ “Yuk-Yuk Duck” no bi: kɔla: # f7f76d; nkyerɛwee-sunsuma: 5px 5px 0 #1e1904;
Ɔkwan foforo so no, saa “Pint Giant” asɛmti yi wɔ atenka soronko bi a ɛne ne sunsuma a enye a ɛyɛ fã bi a ɛyɛ mmerɛw no: kɔla: # c2a872; nkyerɛwee-sunsuma: -7px 5px 0 #b100e, . 0 -5px 10px #546c6f na ɛwɔ hɔ;
Sɛnea ɛbɛyɛ a mede bun foforo bɛka ho na mayɛ nsunsuanso a ɛyɛ anigye pii no, metumi de sunsuma pii ahyɛ so. Wɔ “Let’s Duck Out” ho no, meka sunsuma anan bom: nea edi kan no yɛ sunsuma a ɛyɛ den a ɛwɔ offset a ɛkɔ soro a enye de ma nkyerɛwee no so fi akyi, na ɛno akyi no, sunsuma a ɛyɛ mmerɛw nkakrankakra ma ɛyɛ nea ɛyɛ kusuu a atwa ho ahyia: kɔla: #6F4D80 na ɛwɔ hɔ; nkyerɛwee-sunsuma: -5px na ɛwɔ hɔ5px 0 #260e1e, /* Sunsuma 1 */ . 0 0 15px #e9ce96, /* Sunsuma 2 */ Ɔde ne nsa kyerɛɛ ne so. 0 0 30px #e9ce96, /* Sunsuma 3 */ . 0 0 30px #e9ce96 na ɛwɔ hɔ; /* Sunsuma 4 */ .
Saa sunsuma yi kyerɛ sɛ text-shadow a wode bedi dwuma no nyɛ sɛ wobɛbɔ kanea nsunsuanso kɛkɛ, efisɛ ebetumi nso ayɛ afɛfɛde na ɛde nipasu aka ho. Text Stroke a wɔde kyerɛw nsɛm Cartoon asɛmti nkrataa pii wɔ nkyerɛwde a wɔakyerɛw no tuntum a ɛma ɛda nsow wɔ akyi. Metumi asan ayɛ saa nkɛntɛnso yi denam text-stroke so. Bere tenten no, na saa agyapade yi nam -webkit- prefix nkutoo so na ɛwɔ hɔ, nanso ɛno nso kyerɛ sɛ mprempren wɔboa no wɔ nnɛyi brawsa ahorow nyinaa so.
text-stroke yɛ nkyerɛwde tiawa a ɛkyerɛ agyapade abien. Nea edi kan, text-stroke-width, twetwe contour twa nkyerɛwde ankorankoro ho hyia, bere a nea ɛto so abien, text-stroke-color, na ɛhwɛ ne kɔla so. Wɔ “Whatever Goes Pup” ho no, mede 4px bruu stroke kaa nkyerɛwee kɔkɔɔ no ho: kɔla: #eff0cd; -webkit-nsɛm-nkyerɛwee: 4px #7890b5; nkyerɛwee-nkyerɛwde: 4px #7890b5;
Strokes betumi ayɛ nea mfaso wɔ so titiriw bere a wɔde aka sunsuma ho no, enti wɔ “Growing, Growing, Gone” ho no, mede 3px stroke a ɛyɛ tratraa kaa 1px sunsuma a ɛkame ayɛ sɛ ɛyɛ kusuu ho de yɛɛ saa nkyerɛwee nsunsuanso a ɛwɔ afã abiɛsa yi: kɔla: #fbb999 na ɛwɔ hɔ; nkyerɛwee-sunsuma: 3px 5px 1px #5160b1; -webkit-nkyerɛwee-nkyerɛwde: 3px #984336; nkyerɛwee-nkyerɛwde: 3px #984336;
Paint Nhyehyɛe Sɛ wode text-stroke di dwuma a, ɛnyɛ bere nyinaa na ɛde nea wɔhwɛ kwan no ba, titiriw wɔ nkyerɛwde a ɛyɛ tratraa ne stroke a ɛyɛ den mu, efisɛ sɛnea ɛte no, browser no twetwe stroke wɔ fill no so. Awerɛhosɛm ne sɛ, CSS da so ara mma me kwan sɛ mɛyɛ nsakrae wɔ stroke placement mu sɛnea metaa yɛ wɔ Sketch mu no. Nanso, paint-order property no wɔ gyinapɛn ahorow a ɛma mitumi de stroke no si fill no akyi, sen sɛ mede bɛto n’anim.
paint-order: stroke di kan paint stroke no, afei fill no, bere a paint-order: fill yɛ nea ɛne no bɔ abira: kɔla: #fbb999 na ɛwɔ hɔ; paint-order: hyɛ mu ma; nkyerɛwee-sunsuma: 3px 5px 1px #5160b1; nkyerɛwee-stroke-kɔla: # 984336; nkyerɛwee-stroke-trɛw: 3px;
Stroke a etu mpɔn ma nkyerɛwde no kɔ so kenkan, ɛde emu duru ka ho, na — sɛ wɔde ka sunsuma ne paint nhyehyɛe ho a — ɛma nkyerɛwee a ɛyɛ tratraa wɔ hɔ ankasa. Akyi Nsɛm Wɔ Nkyerɛwee Mu Cartoon asɛmti nkrataa pii kɔ akyiri sen kɔla a ɛyɛ tratraa denam nkyerɛwee, nsɛm a ɛkɔ soro, anaa mfonini a wɔde ka nkyerɛwde no ho no so. Ɛtɔ da bi a ɛno yɛ texture, ɛtɔ da bi nso a ebia ɛbɛyɛ gradient a ɛwɔ subtle tonal shift. Wɔ wɛb so no, metumi asan ayɛ saa nsunsuansoɔ yi denam akyi mfonini anaa gradient a mede bedi dwuma wɔ nkyerɛwee no akyi, na afei matwitwa no akɔ nkyerɛwdeɛ no nsɛsoɔ so. Wei gyina agyapadeɛ mmienu a ɛyɛ adwuma bom so: background-clip: text ne text-fill-color: transparent.
Nea edi kan no, mede akyi nsɛm bi di dwuma wɔ nkyerɛwee no akyi. Eyi betumi ayɛ bitmap anaa vector mfonini anaa CSS gradient. Wɔ saa nhwɛsoɔ yi a ɛfiri Quick Draw McGraw episode “Baba Bait” mu no, asɛmti no mu nsɛm no de anifere kwan a ɛfiri soro–ase a ɛkɔ soro fi sum mu kɔ hann mu ka ho: akyi: linear-gradient (0deg, # 667b6a, # 1d271a);
Afei, metwitwa saa akyi no gu nkyerɛwde no so na mema nkyerɛwee no da adi sɛnea ɛbɛyɛ a akyi no bɛda adi denam: -webkit-akyi-klip: nsɛm; -webkit-text-fill-color: ɛyɛ nea ɛda adi pefee;
Sɛ wɔde saa nkyerɛwde abien no nkutoo di dwuma a, wɔnyɛ akyi mfonini no ho mfonini wɔ nkyerɛwee no akyi bio; mmom no, wɔayɛ ho adwini wɔ mu. Saa ɔkwan yi yɛ adwuma yiye titiriw bere a wɔde ka akuturuku ne sunsuma ho no. Gradient a wɔatwitwa no ma nkyerɛwde no nya kɔla ne nkyerɛwee, stroke ma ne anoano yɛ nnam, na sunsuma ma ɛkɔ soro fi akyi. Wɔbom san yɛ asɛmti nkrataa a wɔde nsa ayɛ a ɛyɛ layered no a wɔmfa biribiara nni dwuma gye CSS ketewaa bi. Sɛnea ɛte daa no, sɔ nsɛm a wɔatwitwa hwɛ yiye, efisɛ ɛtɔ mmere bi a browser quirks betumi aka sunsuma ne nkyerɛase. Nsɛm a Wɔakyekyɛ Mu Ayɛ Nkyerɛwde Ankorankoro Ɛtɔ da bi a, mempɛ sɛ mɛyɛ asɛmfua anaa asɛmti mũ bi style. Mepɛ sɛ me style nkyerɛwde ankorankoro — sɛ mɛpia nkyerɛwde bi akɔ ne gyinabea, ama glyph biako mu duru foforo, anaasɛ mɛma nkyerɛwde kakraa bi ayɛ nkwa wɔ ahofadi mu. Wɔ HTML ne CSS a ɛnyɛ den mu no, ɔkwan biako pɛ na wotumi de ho to so a wobɛfa so ayɛ saa: kyekyere nkyerɛwde biara wɔ n’ankasa span element mu. Ná metumi de nsa ayɛ saa, nanso ɛno bɛyɛ nea ɛyɛ mmerɛw, ɛbɛyɛ den sɛ wɔbɛhwɛ so, na sɛ wɔsesa kɔpi a, ɛbɛsɛe ntɛmntɛm. Mmom, sɛ mihia nkyerɛwde biara sohwɛ a, mede nhomakorabea a ɛkyekyɛ nsɛm mu te sɛ splt.js di dwuma (ɛwom sɛ ano aduru afoforo wɔ hɔ de). Eyi gye text node na ɛkyekyere nsɛmfua anaa nkyerɛwde no ankasa, na ɛma minya hooks foforo a mede bɛyɛ animate ne style a ɛmma me markup no nsɛe. Ɛyɛ ɔkwan a ɛma me HTML kɔ so kenkan na ntease wom, bere a ɛma me tumi a ɛyɛ fɛ a mihia na ama masan ayɛ nkyerɛwee a ɛnyɛ pɛpɛɛpɛ, a ɛwɔ suban a wuhu wɔ tete cartoon title cards mu no. Nanso, saa kwan yi de baaccessibility caveats, bere a screen akenkanfo dodow no ara kenkan text nodes nnidiso nnidiso no. Enti eyi:
Hum Hum a ɛyɛ dɛ
...kenkan sɛnea wobɛhwɛ kwan no: Hum Hum a ɛyɛ dɛ
Nanso eyi:
H na ɛyɛ u na ɛwɔ hɔ m na ɛyɛ
...wobetumi akyerɛ ase wɔ ɔkwan soronko so a egyina browser ne screen reader so. Ebinom bɛka nkyerɛwde no abom na wɔakenkan nsɛmfua no yiye. Ebia afoforo nso begyina nkyerɛwde ntam, na wɔ tebea a enye koraa mu no, ebetumi ayɛ te sɛ: “H...” “U...” “M...”
Awerɛhosɛm ne sɛ, mpaapaemu ano aduru binom mma nea efi mu ba a wotumi nya bere nyinaa, enti makyerɛw m’ankasa nkyerɛwee mu mpaapaemu, splinter.js, a mprempren ɛwɔ beta mu. Nkrataa Ankorankoro a Wɔsakra Sɛ wopɛ sɛ me Toon Text Splitter no yɛ adwuma a, mede data- attribute bi ka element a mepɛ sɛ mekyekyɛ mu no ho:
Hum Hum a Ɛyɛ Dwo
Nea edi kan no, me nkyerɛwee no tetew asɛmfua biara mu ma ɛyɛ nkyerɛwde ankorankoro na ɛkyekyere no wɔ span element a wɔde class ne ARIA su ahorow adi dwuma mu: H u m
Afei script no fa mfitiaseɛ nsɛm a ɛwɔ split element no mu na ɛde ka ho sɛ aria attribute de boa ma wɔkura accessibility mu:
H u m
Sɛ mede saa adesuakuw su ahorow no di dwuma a, afei metumi ayɛ nkyerɛwde ankorankoro sɛnea mepaw.
Sɛ nhwɛso no, wɔ “Hum Sweet Hum” ho no, mepɛ sɛ mesan yɛ sɛnea ne nkyerɛwde no dan fi mfiase no ho. Bere a mede me Toon Text Splitter dii dwuma wiei no, mede nkyerɛase botae ahorow anan dii dwuma denam :nth-child selectors pii so de yɛɛ semi-random look: /* 4th, 8th, 12th... */ Ɔde ne nsa kyerɛɛ ne so bio. .toon-char:nth-abofra (4n) { kyerɛ ase: 0 -8px; } . /* 1st, 5th, 9th... */ Ɔde ne nsa kyerɛɛ ne so. .toon-char:nth-abofra (4n + 1) { kyerɛ ase: 0 -4px; } . /* 2nd, 6th, 10th... */ Ɔde ne nsa kyerɛɛ ne so. .toon-char:nth-abofra (4n + 2) { kyerɛ ase: 0 4px; } . /* 3rd, 7th, 11th... */ Ɔde ne nsa kyerɛɛ ne so, na ɔde ne nsa kyerɛɛ ne so bio. .toon-char:nth-abofra (4n + 3) { kyerɛ ase: 0 8px; } .
Nanso translate yɛ property baako pɛ a metumi de adi dwuma de asakra me toon text.
Na metumi nso adan saa nkyerɛwde ankorankoro no ama ayɛ basabasa kɛse mpo: /* 4th, 8th, 12th... */ Ɔde ne nsa kyerɛɛ ne so bio. .toon-line .toon-char:nth-abofra (4n) { dannan: -4deg; } . /* 1st, 5th, 9th... */ Ɔde ne nsa kyerɛɛ ne so. .toon-char:nth-abofra (4n + 1) { dannan: -8deg; } . /* 2nd, 6th, 10th... */ Ɔde ne nsa kyerɛɛ ne so. .toon-char:nth-abofra (4n + 2) { dannan: 4deg; } . /* 3rd, 7th, 11th... */ Ɔde ne nsa kyerɛɛ ne so, na ɔde ne nsa kyerɛɛ ne so bio. .toon-char:nth-abofra (4n + 3) { dannan: 8deg; } .
Nanso translate yɛ property baako pɛ a metumi de adi dwuma de asakra me toon text. Na metumi nso adan saa nkyerɛwde ankorankoro no ama ayɛ basabasa kɛse mpo: /* 4th, 8th, 12th... */ Ɔde ne nsa kyerɛɛ ne so bio. .toon-line .toon-char: abofra a ɔto so nn(4n) { . di akɔneaba: -4deg; } .
/* 1st, 5th, 9th... */ Ɔde ne nsa kyerɛɛ ne so. .toon-char:nth-abofra (4n + 1) { . di akɔneaba: -8deg; } .
/* 2nd, 6th, 10th... */ Ɔde ne nsa kyerɛɛ ne so. .toon-char:nth-abofra (4n + 2) { . di akɔneaba: 4deg; } .
/* 3rd, 7th, 11th... */ Ɔde ne nsa kyerɛɛ ne so, na ɔde ne nsa kyerɛɛ ne so bio. .toon-char:nth-abofra (4n + 3) { . di akɔneaba: 8deg; } .
Na, nokwarem no, metumi de animations aka ho de ayɛ jiggle saa characters no na ama me toon text style titles no aba nkwa mu. Nea edi kan no, meyɛɛ keyframe animation a ɛdannan nkyerɛwde no:
@keyframes jiggle { . 0%, 100% { nsakrae: dannan (var (--base-dannan, 0deg)); } . 25% { nsakrae: dannan (calc (var (--base-dannan, 0deg) + 3deg)); } . 50% { nsakrae: dannan (calc (var (--base-dannan, 0deg) - 2deg)); } . 75% { nsakrae: dannan (calc (var (--base-dannan, 0deg) + 1deg)); } . } .
Ansa na wode bedi dwuma wɔ span elements a me Toon Text Splitter ayɛ no so: .toon-char { . animation: jiggle 3s a enni ano a ɛyɛ mmerɛw sɛ wobɛkɔ mu; transform-origin: mfinimfini ase; } .
Na awiei koraa no, hyehyɛ rotation dodow ne delay ansa na character biara afi ase ayɛ jiggle: .toon-char:nth-abofra (4n) { --gyinabea-dannan: -2deg; } . .toon-char:nth-abofra (4n + 1) { -- nnyinaso-dannan: -4deg; } . .toon-char:nth-abofra (4n + 2) { -- nnyinaso-dannan: 2deg; } . .toon-char:nth-abofra (4n + 3) { -- nnyinaso-dannan: 4deg; } .
.toon-char:nth-child (4n) { animation-akyɛde: 0.1s; } . .toon-char:nth-child (4n + 1) { animation-akyɛde: 0.3s; } . .toon-char:nth-child (4n + 2) { animation-akyɛde: 0.5s; } . .toon-char:nth-child (4n + 3) { animation-akyɛde: 0.7s; } .
Frame Baako a Ɛbɛma Woanya Nsusuwii Ná wɔn a wɔyɛ mfoninitwa asɛmti no wɔ frame biako a wɔde bɛma nkurɔfo anya adwene, na na wɔn nkyerɛwee no ho hia te sɛ adwinni a wɔyɛ no. Saa ara na ɛte wɔ wɛbsaet so. Ti anaa ɔbran a wɔayɛ no yiyempɔtam hɔ hia pefeeyɛ, suban, ne ahotoso — ɛnyɛ akyi mfonini a ayera kɛkɛ a ne trɛw nyinaa. Sɛ yɛde CSS agyapadeɛ kakraa bi a yɛapaw no yie — sunsuma, stroke, akyi mfonini a wɔatwitwa, ne animation bi a wɔahyɛ no so — yɛbɛtumi asan ayɛ saa nkɛntɛnsoɔ korɔ no ara. M’ani gye toon text ho ɛnyɛ sɛ m’ani gye ho nti, na mmom esiane sɛ wɔahyɛ da ayɛ ne nhyehyɛe nti. Wohyɛ da paw nneɛma, na ma toon text typography kakra mfa punch nka wo designs ho.