#css background animation
Explore tagged Tumblr posts
divinector · 3 months ago
Text
Tumblr media
Animated Background HTML CSS
6 notes · View notes
codenewbies · 9 months ago
Text
Tumblr media
CSS Background Loop Animation
3 notes · View notes
codingflicks · 1 year ago
Text
Tumblr media
CSS Animated Background
1 note · View note
jcmarchi · 8 days ago
Text
The Lost CSS Tricks of Cohost.org
New Post has been published on https://thedigitalinsider.com/the-lost-css-tricks-of-cohost-org/
The Lost CSS Tricks of Cohost.org
You would be forgiven if you’ve never heard of Cohost.org. The bespoke, Tumblr-like social media website came and went in a flash. Going public in June 2022 with invite-only registrations, Cohost’s peach and maroon landing page promised that it would be “posting, but better.” Just over two years later, in September 2024, the site announced its shutdown, its creators citing burnout and funding problems. Today, its servers are gone for good. Any link to cohost.org redirects to the Wayback Machine’s slow but comprehensive archive.
The landing page for Cohost.org, featuring our beloved eggbug.
Despite its short lifetime, I am confident in saying that Cohost delivered on its promise. This is in no small part due to its user base, consisting mostly of niche internet creatives and their friends — many of whom already considered “posting” to be an art form. These users were attracted to Cohost’s opinionated, anti-capitalist design that set it apart from the mainstream alternatives. The site was free of advertisements and follower counts, all feeds were purely chronological, and the posting interface even supported a subset of HTML.
It was this latter feature that conjured a community of its own. For security reasons, any post using HTML was passed through a sanitizer to remove any malicious or malformed elements. But unlike most websites, Cohost’s sanitizer was remarkably permissive. The vast majority of tags and attributes were allowed — most notably inline CSS styles on arbitrary elements.
Users didn’t take long to grasp the creative opportunities lurking within Cohost’s unassuming “new post” modal. Within 48 hours of going public, the fledgling community had figured out how to post poetry using the <details> tag, port the Apple homepage from 1999, and reimplement a quick-time WarioWare game. We called posts like these “CSS Crimes,” and the people who made them “CSS Criminals.” Without even intending to, the developers of Cohost had created an environment for a CSS community to thrive.
In this post, I’ll show you a few of the hacks we found while trying to push the limits of Cohost’s HTML support. Use these if you dare, lest you too get labelled a CSS criminal.
Width-hacking
Many of the CSS crimes of Cohost were powered by a technique that user @corncycle dubbed “width-hacking.” Using a combination of the <details> element and the CSS calc() function, we can get some pretty wild functionality: combination locks, tile matching games, Zelda-style top-down movement, the list goes on.
If you’ve been around the CSS world for a while, there’s a good chance you’ve been exposed to the old checkbox hack. By combining a checkbox, a label, and creative use of CSS selectors, you can use the toggle functionality of the checkbox to implement all sorts of things. Tabbed areas, push toggles, dropdown menus, etc.
However, because this hack requires CSS selectors, that meant we couldn’t use it on Cohost — remember, we only had inline styles. Instead, we used the relatively new elements <details> and <summary>. These elements provide the same visibility-toggling logic, but now directly in HTML. No weird CSS needed.
These elements work like so: All children of the <details> element are hidden by default, except for the <summary> element. When the summary is clicked, it “opens” the parent details element, causing its children to become visible.
We can add all sorts of styles to these elements to make this example more interesting. Below, I have styled the constituent elements to create the effect of a button that lights up when you click on it.
This is achieved by giving the <summary> element a fixed position and size, a grey background color, and an outset border to make it look like a button. When it’s clicked, a sibling <div> is revealed that covers the <summary> with its own red background and border. Normally, this <div> would block further click events, but I’ve given it the declaration pointer-events: none. Now all clicks pass right on through to the <summary> element underneath, allowing you to turn the button back off.
This is all pretty nifty, but it’s ultimately the same logic as before: something is toggled either on or off. These are only two states. If we want to make games and other gizmos, we might want to represent hundreds to thousands of states.
Width-hacking gives us exactly that. Consider the following example:
In this example, three <details> elements live together in an inline-flex container. Because all the <summary> elements are absolutely-positioned, the width of their respective <details> elements are all zero when they’re closed.
Now, each of these three <details> has a small <div> inside. The first has a child with a width of 1px, the second a child with a width of 2px, and the third a width of 4px. When a <details> element is opened, it reveals its hidden <div>, causing its own width to increase. This increases the width of the inline-flex container. Because the width of the container is the sum of its children, this means its width directly corresponds to the specific <details> elements that are open.
For example, if just the first and third <details> are open, the inline-flex container will have the width 1px + 4px = 5px. Conversely, if the inline-flex container is 2px wide, we can infer that the only open <details> element is the second one. With this trick, we’ve managed to encode all eight states of the three <details> into the width of the container element.
This is pretty cool. Maybe we could use this as an element of some kind of puzzle game? We could show a secret message if the right combination of buttons is checked. But how do we do that? How do we only show the secret message for a specific width of that container div?
In the preceding CodePen, I’ve added a secret message as two nested divs. Currently, this message is always visible — complete with a TODO reminding us to implement the logic to hide it unless the correct combination is set.
You may wonder why we’re using two nested divs for such a simple message. This is because we’ll be hiding the message using a peculiar method: We will make the width of the parent div.secret be zero. Because the overflow: hidden property is used, the child div.message will be clipped, and thus invisible.
Now we’re ready to implement our secret message logic. Thanks to the fact that percentage sizes are relative to the parent, we can use 100% as a stand-in for the parent’s width. We can then construct a complicated CSS calc() formula that is 350px if the container div is our target size, and 0px otherwise. With that, our secret message will be visible only when the center button is active and the others are inactive. Give it a try!
This complicated calc() function that’s controlling the secret div’s width has the following graph:
You can see that it’s a piecewise linear curve, constructed from multiple pieces using min/max. These pieces are placed in just the right spots so that the function maxes out when the container div is 2px— which we’ve established is precisely when only the second button is active.
A surprising variety of games can be implemented using variations on this technique. Here is a tower of Hanoi game I had made that uses both width and height to track the game’s state.
SVG animation
So far, we’ve seen some basic functionality for implementing a game. But what if we want our games to look good? What if we want to add ✨animations?✨ Believe it or not, this is actually possible entirely within inline CSS using the power of SVG.
SVG (Scalable Vector Graphics) is an XML-based image format for storing vector images. It enjoys broad support on the web — you can use it in <img> elements or as the URL of a background-image property, among other things.
Like HTML, an SVG file is a collection of elements. For SVG, these elements are things like <rect>, <circle>, and <text>, to name a few. These elements can have all sorts of properties defined, such as fill color, stroke width, and font family.
A lesser-known feature of SVG is that it can contain <style> blocks for configuring the properties of these elements. In the example below, an SVG is used as the background for a div. Inside that SVG is a <style> block that sets the fillcolor of its <circle> to red.
An even lesser-known feature of SVG is that its styles can use media queries. The size used by those queries is the size of the div it is a background of.
In the following example, we have a resizable <div> with an SVG background. Inside this SVG is a media query which will change the fill color of its <circle> to blue when the width exceeds 100px. Grab the resize handle in its bottom right corner and drag until the circle turns blue.
Because resize handles don’t quite work on mobile, unfortunately, this and the next couple of CodePens are best experienced on desktop.
This is an extremely powerful technique. By mixing it with width-hacking, we could encode the state of a game or gizmo in the width of an SVG background image. This SVG can then show or hide specific elements depending on the corresponding game state via media queries.
But I promised you animations. So, how is that done? Turns out you can use CSS animations within SVGs. By using the CSS transition property, we can make the color of our circle smoothly transition from red to blue.
Amazing! But before you try this yourself, be sure to look at the source code carefully. You’ll notice that I’ve had to add a 1×1px, off-screen element with the ID #hack. This element has a very simple (and nearly unnoticeable) continuous animation applied. A “dummy animation” like this is necessary to get around some web browsers’ buggy detection of SVG animation. Without that hack, our transition property wouldn’t work consistently.
For the fun of it, let’s combine this tech with our previous secret message example. Instead of toggling the secret message’s width between the values of 0px and 350px, I’ve adjusted the calc formula so that the secret message div is normally 350px, and becomes 351px if the right combination is set.
Instead of HTML/CSS, the secret message is now just an SVG background with a <text> element that says “secret message.” Using media queries, we change the transform scale of this <text> to be zero unless the div is 351px. With the transition property applied, we get a smooth transition between these two states.
Click the center button to activate the secret message:
The first cohost user to discover the use of media queries within SVG backgrounds was @ticky for this post. I don’t recall who figured out they could animate, but I used the tech quite extensively for this quiz that tells you what kind of soil you’d like if you were a worm.
Wrapping up
And that’s will be all for now. There are a number of techniques I haven’t touched on — namely the fun antics one can get up to with the resize property. If you’d like to explore the world of CSS crimes further, I’d recommend this great linkdump by YellowAfterlife, or this video retrospective by rebane2001.
It will always hurt to describe Cohost in the past tense. It truly was a magical place, and I don’t think I’ll be able to properly convey what it was like to be there at its peak. The best I can do is share the hacks we came up with: the lost CSS tricks we invented while “posting, but better.”
0 notes
newcodesociety · 1 year ago
Text
0 notes
negg · 2 years ago
Text
Tumblr media Tumblr media
🌈 Rainbow Page Theme 🌈
made a page theme for pride month based on the original 70s rainbow flag! you can click on stripes of the flag to swap color schemes. happy pride!
Features:
Pride flag theme switcher (requires Javascript)
Mobile friendly (built w/ flexbox)
Customizable background & sidebar image
Animated rainbow title (can be changed)
Styled audio player
Responsive image class
…and other cool stuff!
Notes:
You must have javascript enabled for this page theme to work. See this post for instructions.
This theme is intended to be used with custom Tumblr pages (select custom layout rather than standard layout and then copy & paste the raw Gist code)
This can also be used on Neocities or any other host that supports HTML/CSS/JS.
🍃 live preview + code + more info 🍃
1K notes · View notes
hiveswap · 2 months ago
Text
I still find it insane that no one in my life is as excited about webdesign as i am. Like it's a good skill!!! any page you look at looks the way it does because of people who know how to do this!! And still goes so underutilised!! There is so much you could do with it, but the internet is dead set on turning everything into sleek minimalist boxes with rounded edges.
.div{Background:white; border-radius: 25px; border: 2px solid grey;} and you're fucking done you've recreated most major websites.
Nowdays you're LUCKY if you find a social media that allows you to change your background colour, (Such as this one) when with css you could have animated elements! Rainbow text! picture of ground paprika that grows the width of your entire site when hovered over!
Yesterday i showed my mom (wrong person i know, but most people i know check out mentally when i mention it) something i made and she was like "i don't get it. This looks like a gif. How did you know what to write?" Like she was so close to getting that i learned a cool new thing but then she just didn't wanna hear about it anymore.
It's a little bit insane how something half the world runs on can be like, kinda niche as well. Just go on neocities or nekoweb. (I have a few webring neighbours who host on nekoweb) and look what people do on there. Look at that old spacejam website, even.
29 notes · View notes
n7punk · 3 months ago
Text
"Hotel Couches & Other Hail Marys" Fic Notes
These aren't the traditional format but I have enough Hidden Little Things I wanna do very loose an informal fics notes
The "Hotel Couch" was Catra's Hail Mary, but the shared bed was Catradora's, and Catradora's reunion was the fans' Hail Mary.
The way I do tweets was invented back in DITM and "perfected" in SaD, when I also invented how I do Instagram posts/stories/reels/DMs. I wasn’t reinventing shit for the changes Twitter has made, it’s ~historically accurate~ to when Dashcon happened. The one change I made was not using the block quote indent for all the digital posts I usually do, but that entire fic was digital, so I only ended up using it for indented reply chains on Twitter (which worked out better tbh) and on the Instagram chapter to distinguish the posts and the descriptions of the images/videos.
Fake tumblr posts/alternate reality dashboard simulators are already a popular format on Tumblr so there really was very little for me to do there. I made some tweaks by adding in the comment/share/like icons I use for Twitter, but overall that part was easy. The hardest part was getting the follow button blue. On Tumblr that's easy, colored text is a built-in option, but for AO3 I had to use a work skin to include some CSS for the color code. I ended up modifying the Reddit skin I had made using this tutorial because I was planning to capstone with a Reddit post anyway so I could just add on the blue on. Normally I don’t consider using colored text for many reasons (hard to read, might look great on my site skin and be invisible on others, etc), but in the case of the follow buttons they could just as easily not be there and contribute nothing but realism, so I wanted to have them in their standard blue.
Normally I don’t even consider using Tumblr when doing social media posts in a fic but considering this was inspired by Dashcon which was literally a Tumblr convention, I had to for this one. As such, the first chapter is mostly set-dressing for the disaster the convention is itself so when people complain in future chapters it makes sense. The rough outline was: Tumblr (convention background) Twitter (reconnect and beef background) Instagram (bond) DMs/texts (get together) Reddit (retrospective epilogue wrapping up the story)
Most of the usernames are just like. Random shit I could come up with. The ones on Tumblr are supposed to be random stuff on the site and the ones on Twitter lean more towards fandom-associated stuff for the She-ra fandom since it’s transitioning from the pool of All Con Attendees to the microcosm of their fans affected. Most of these can be found in previous fics such as DITM. That said, here are the name(s) with inspo behind them:
🍕nnlftbf: none pizza left beef. And no vowels. I have always desperately wanted to eat the none pizza
🦉pewpew4gloria: Star Siblings fan (reference to Starla’s bird)
🐍nagashed: this is a reference to both the plethora of (human animal hybrid)(bodypart) tumblr usernames (ex: dragongirlsnort) and a manga that my friend is reading.
🎃pumpkakitty: reference to a really cute hat in Pokemon Go 🥺 (okay it’s supposed to be a pikachu but it looks like a kitty tbh)
🌈edgeofgloria: another Star Siblings fan
He-Ro in the Freak Zone @frightzest: He-Ro is an actual MOTU character, frightzest is from DITM
Aside: the “looki loo” thing is a reference to Razz’s good ol pal Looki, hence the fandom in-joke
praying mantis wife @nineten02: nineten is a reference to my Stardew Valley chickens <3
Katastrophe @viviviolence: Vi’s shoulders you mean so much to me
Oh yeah Zeni is Zine just. Flipped. Also the original She-ra artist was one of the two sponsors who pulled out and the entire reason they were there. I mean what?
When Adora called Catra aggravating on camera she was doing it in a horny way but with Real Beef between them it didn’t come across that way. She also said they wouldn’t work together as a factual thing rather than spiteful. There was no way the studio OR Catra would let them.
When Catra said she’s “finally suing” she’s referring to the long-standing rumor that the previous showrunner “stepped back” because Catra was threatening to sue for the wage/credit theft, or the discrimination, or the abusive work environment, or the-
The dates Adora reached out to Catra via DMs were all significant ones for the real series — season 1 debut for when they were nominated, prompting the thank you story, season 2 debut for when they won the award (I didn’t look up and don’t care when the actual GLAADs are lol), and season 3 debut when ZeniCon is actually taking place. Almost three years have passed since Catra’s ousting from the show back between seasons 3 and 4, tho.
Given the NDA and general threat-level from the studio, Adora didn’t think she could mention Catra on her main page without getting a talking to even with Weaver officially departed, so she tried to do it on her story, but Catra did NOT want the heat that could bring.
The foam She-ra crown from the Instagram reel is the same one they gave out at cons in 2018 and 2019.
Adora calling it the “season 5” rather than “season 4” wrap part led to fan speculation that season 5 really was written by Catra except for the weakest parts — some stuff needing to be condensed, the insertion of a new storyline — which like. Well they are right. But she said season 5 rather 4 (which was wholly Catra’s) because it’s the part she’s most proud of even after they took it from her. It’s what she was building to the whole time.
Catra and Adora lasted like ten minutes lying next to each other in bed before they ended up kissing and when it started progressing they snuck into the bathroom. It was obvious Bow was asleep and they were just hoping Glimmer was too. Glimmer, too, wishes she was asleep.
Glimmer refers to Catra being “at her worst” because she got really aggressive and disparaging of her old cast out of bitterness after they wouldn’t back her up in the press (to keep their jobs). They all understand why, but it is still frustrating.
Melendy is from my fic lore, she’s a magicat character I use sometimes who is named after Catra’s VA in the 80s. She plays a recurring character on the show, though on the minor side.
I linked the Ohio con video because 1) that video is the ONLY time I’ve heard of it and I love the drama 2) to hammer home all the shit I say in this isn’t just from Dashcon, I am not here to libel people and 3) because I like my secret little links, BUT if you want to see a good video on Dashcon, watch this one and literally never watch Internet Historian he’s a POS: https://www.youtube.com/watch?v=ZAqy-KDJAUM
The behind the scenes shitshow for She-Ra itself was inspired by the TV show Lost (though Catra keeping her storylines secret was inspired by Real She-ra and ND Stevenson)
Like I said, I had been wanting to do a fic that was “just digital” for a while. The massive problem with that is getting across the shit people don’t post online because there is not a single trace of Catra and Adora potentially being a couple until after ZeniCon. Catra and Adora were basically wildly attracted to each other from the moment they met on the show but wouldn’t cross that barrier because they worked together (especially because of where they worked together). They ended up hooking up during some high-stress times for the show just to deal with how much they wanted each other. Catra felt really betrayed when the cast wouldn’t stick their necks out for her when she was ousted. Privately they were all on her side and told the studio so, but to publicly side with her was to lose their jobs, and the show was their entire life. They ultimately picked their passion & livelihood over showing public support they didn’t think would make a difference anyway and she cut all ties with them. They did what they felt they could, which was mostly never denying her version of events and deflecting questions when they had no other choice, but they all felt bad about it and tried to reach out to her privately. She didn’t want to hear it, but fans were right that the real beef was with the studio. She fell back into their arms eventually because she could see they were doing what they could while keeping their jobs, and she knew just how much being unemployed sucked. Adora was also telling the truth when she said they were fighting for her version of the story by staying on the show and no matter how much Catra calls it theft, that is what she wants for her characters. Being forced into the same room let them all remember what it was like to be friends, and that’s what led them to eventually giving their apologies.
I have no idea why, when presented with “lol dashcon au” my brain goes “rampant wage theft, behind the scenes abuse, disgrace and scandal, show extension hell a la supernatural, brrrrrrrrrr” but there we go
27 notes · View notes
thecozycat · 1 month ago
Text
Tumblr media
🧡 Tuesday Tips #3 🧡
Your website is more than just a collection of pages—it’s your digital home. It should reflect you, your interests, and your personality. But with so many sites out there, how do you make yours stand out?
Here are 25 ways to make your website feel more personal, unique, and personalized to you!
........................................................................................................
🎨 Design & Aesthetics
1. Custom Color Palette – Pick colors that resonate with your personality and aesthetic.
2. Unique Typography Choices – Use a mix of fonts that match your vibe.
3. Handwritten or Doodle Elements – Add personal sketches or notes.
4. Custom Cursor – Let visitors use a fun, themed cursor on your site.
5. Personalized Favicon – A tiny but powerful detail that makes your site feel complete.
6. Themed Layouts for Different Pages – Make each page visually distinct but cohesive.
7. Custom Backgrounds – Textures, gradients, or even a personal photograph.
8. Retro or Experimental CSS Styles – Go wild with unique styles that make your site stand out.
9. Create a Custom Hand-Drawn Logo – Instead of a standard logo, try sketching one yourself for a unique touch.
10. Add Subtle Animations – Small hover effects, background animations, or cursor trails can bring your site to life.
11. Play With Layering Elements – Overlap images, text, and shapes for a more dynamic look.
12. Design a Personalized Loading Screen – A custom loading animation or message adds a fun detail visitors will remember.
13. Add Your Own Handwriting as a Font – Convert your handwriting into a web font for a truly personal touch.
14. Design a Seasonal Theme Switcher – Let visitors toggle between different seasonal or mood-based color palettes.
........................................................................................................
📜 Content & Personality
15. Create a Behind-the-Scenes Page – Show how your website was built, share your thought process, or include fun bloopers.
16. Add a "The Making Of" Section – Share drafts, sketches, or early concepts behind your creative works.
17. Include a Personal Dictionary of Words You Love – A list of favorite words, phrases, or slang you frequently use.
18. Design a "Things That Make Me Happy" Page – A simple, uplifting page filled with personal joys.
19. Show Your Progress on a Learning Goal – Track and share your journey in learning a new skill, language, or hobby.
........................................................................................................
💾 Interactivity & Engagement
20. Add a Clickable Mood Indicator – Let visitors see your current mood with an emoji or phrase that changes over time.
21. Create a Dynamic Banner That Updates Automatically – Display different messages depending on the time of day or special occasions.
22. Add a "What I'm Listening To" Widget – A live-updating display of your current favorite song or playlist.
23. Embed a Poll or Voting Feature – Let visitors vote on fun topics or help you make creative decisions.
24. Introduce a Mini Personality Quiz – Something quirky like “Which of my favorite books/movies are you?”
25. Make an "Ask Me Anything" Page – An interactive page where visitors can submit questions for you to answer.
Closing: Make It Yours!
Your website should be you in digital form—fun, unique, and engaging. Whether you add just one or all 25 ideas, the most important thing is to have fun and make it your own.
If you try any of these ideas, let me know—I’d love to see what you create!
-----------------------------------------------------------------
Want to help the Small Web movement grow?
Join us on other platforms. ♥
FB Page & Group:
facebook.com/thesmallweb
facebook.com/groups/thesmallweb
Twitter/X:
x.com/smallweblove
Tumblr Community:
tumblr.com/communities/thesmallweb
Mastodon:
indieweb.social/@thesmallweb
16 notes · View notes
divinector · 1 month ago
Text
Tumblr media
Pure CSS3 Animated Background
4 notes · View notes
codenewbies · 1 year ago
Text
Tumblr media
Animated Background with CSS
3 notes · View notes
codingflicks · 1 year ago
Text
Tumblr media
Animated Background CSS
1 note · View note
codingquill · 6 months ago
Text
Tumblr media
Day 2 - 100 Days CSS Challenge
Welcome to day 2 of 100 days of css challenge, where we will be together getting a given image result into reality by code.
We already know the drill since we did the first challenge, now let's get right into the different steps:
First step : Screenshot the image and get its color palette
Tumblr media
No crazy color palette here, we only have two colors
White
This shade of green: #3FAF82
To make things more organized and get used to coding in an organized way, even if not doing it here wouldn't make any difference because we only have two colors, in more complex projects we would have a lot, we will define our colors at the beginning of our CSS code (well, only the green in this case):
:root { --main-green: #3FAF82; }
And this is how we'll use it whenever we want:
color: var(--main-green);
Second step : Identify the image elements
What elements do I have?
Three lines: line1, line 2, and line 3. I'll add them to my HTML starter template, again I'll leave the frame and center there:
<div class="frame"> <div class="center"> <div class="line-1 line"></div> <div class="line-2 line"></div> <div class="line-3 line"></div> </div> </div>
Third step : Bring them to life with CSS
Applying the background color
Only one line should be changed in the CSS code already added to .frame class:
background: var(--main-green);
So this is what we have going on for now :
Tumblr media
Creating the lines
Now let's create our lines; if you noticed I gave each one two classes line-number and then line. I'll use the line class to give them all the common properties they have such as the color, height, width, position, border-radius, and shadow. And then I'll use the line-number to move them wherever I want using the left, top, right, bottom properties of an absolutely positioned element in CSS.
Let's start by creating all of them:
.line { left: -45px; position: absolute; height: 9px; width: 100px; background: white; border-radius: 10px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); }
And just like this you'll see this in the browser:
Tumblr media
You only see one line because the three are overlapping each other, and that's why we'll move each one of them exactly where we want using this:
.line-3 { top: 22px; } .line-1 { top: -22px; }
Now our static menu is ready:
Tumblr media
Creating and analyzing the animations
As of observing, we can see that:
Line one goes down to line 2
Line three goes up to line 2
THEN line 2 disappears
THEN lines 1 and rotate to create the X
line-one-goes-down animation
This is my line-one code in the static version:
.line-1 { top: -22px; }
What I'm trying to do here is simply a movement translated by changing top from -22px to it becoming 0px:
@keyframes line-one-goes-down { 0% { top: -22px; } 100% { top: 0px; } }
line-three-goes-up animation
Again, I'm trying to go from top being 22px to it being 0px:
@keyframes line-three-goes-up { 0% { top: 22px; } 100% { top: 0px; } }
line-two-disappear animation
Making disappear simply means turning its opacity and width to 0:
@keyframes line-two-disappear { 0% { opacity: 1; width: 100px; } 100% { opacity: 0; width: 0px; } }
I'm gonna apply these animations and see what happens , before I create the rotation animations
.center.active .line-1 { animation: line-one-goes-down 0.5s forwards; } .center.active .line-2 { animation: line-two-disappear 0.5s forwards; } .center.active .line-3 { animation: line-three-goes-up 0.5s forwards; }
forwards means that the element will stay in the final state after the animation and not return to its original state.
This is what applying those three animations looks like:
Last but not least : let's Create the X
We only have to animations left for this: rotate-line-1 and rotate-line-2. Let's create them:
@keyframes rotate-line-1 { 0% { transform: rotate(0deg); } 100% { transform: rotate(45deg); } } @keyframes rotate-line-2 { 0% { transform: rotate(0deg); } 100% { transform: rotate(-45deg); } }
And that is my friends how we finished this challenge!
Happy coding, and see you tomorrow for Day 3!
18 notes · View notes
eribytevt · 2 years ago
Text
Tumblr media
Hello world! Do you like Programming? Do you like Streaming? Do you like Vtubers/Anime? Does a combination of the 3 sound slightly interesting to you? Do you enjoy all these questions I'm asking? If you answered yes to any of these questions then why not hop by Sunday September 17th at 11am CST to watch me (@EribyteVT on twitch), A backend software engineer try and implement a website using only HTML, JS, CSS, and these images I made in MS paint!
Tumblr media Tumblr media Tumblr media
[Image ID: A screenshot of the Vtuber Eribyte on a black background. She is from the chest up looking away from the camera with a smile. She is wearing a tank top and labcoat. Her hair is long, wavy, and gray. she is holding a book /.End ID]
[Image ID: 3 Images of a basic drawing of a website can be seen. The first image is the schedule page, which contains a stream schedule and a count down until the next stream. The next image contains the socials page, which shows several social media site names with squiggles underneath them. The last image shows the home page./.End ID]
147 notes · View notes
hauntinginprogress · 2 months ago
Text
neocities heracles trials: from a chaotic newbie
okay so i want to actually start posting here and i finally got it through my thick skull that this is LITERALLY A BLOG. i'm supposed to blog. so here's a blog post.
anyways, for context, i've been working on my neocities for a while now, recently started over to make things more original and more me. another thing to note is that i'm using VScode.
the issue here is that i have zero well not exactly zero but i lack any professional/academic background experience with making websites. the html isn't the issue (thankfully) but holy shit dude...css+javascript implementation . basic styling with css is no biggie, right? absolutely, however...may i introduce: smooth transitions + the absolutely tragic fact that the <marquee> tag is deprecated an accessibility issue.
so, my first goal day one was to recreate a marquee animation through css. so i tried to simply implement this incredibly useful bit of code into my site (in which if you're interested i totally think my failure to get it working was user error so please check it out it works great if you're not me) but, lo and behold, despite me getting it to work in my V1 project, i could not, for the life of me, get it to work. so i, not too familiar with css animation and completely lost when it comes to javascript, started grasping at straws. i ended up finding this tutorial and, with some improvisation since the tutorial is for webflow and i'm manually writing everything, managed to make my own css recreation of a marquee effect essentially from scratch, and even learned about the animation-play-state css attribute so i could pause the effect when the marquee is hovered over! victory, basically.
Tumblr media
then, i looked around the many cool and absolutely awesome sites on neocities to get inspiration, and then i was like "hey what if i made a custom button background image" and with some trial and error, made myself a pretty decent base (for now) with aseprite, and learned more about the program in the meantime which is always a plus.
then i decided that i wanted to do more with the buttons. i wanted to make it animate on hover. not too hard right? you'll...you'll see why i struggled...in a moment...
anyways, i settled on a simple shrink animation. which THIS i could do with ease, messed around a bit, got the keyframes, assigned that to the button:hover and all of that and all was good!...until i realized that once i stopped hovering over it, it snapped back to its original scale instead of transitioning smoothly again. THIS is where the "fun" began.
see, although i can wrap my head around things easily when it comes to css, i have to constantly look up what the proper syntax for everything is because otherwise i'll mess everything up. and through my research i had conducted (aka surfing through multiple blogs and reddit posts alongside other things on random forum websites) i had discovered the very neat transition attribute.
but we'll have to return to this because i have adhd, and i ended up getting distracted during this process. see, originally i had decided that the button would change it's visual to appear like it was pressed when the user's mouse hovered over it. then i was like "i don't think this makes sense" so i changed it so that the button wouldn't change its background image unless the user actually clicked on it. so i did that. then i had to make sure that the button wouldn't magically scale up again so i had to transform the styling and blah blah blah those details aren't really that important ANYWAYS the actual important bit about this is that if you use the transition attribute and there's a change in background images that change will also be transitioned unless you set the transition to only apply to a specific change. and i didn't know that originally. so every time i tried to fix things up with a transition so the button wouldn't snap back to it's original size out of nowhere the background would slooowly change as well and i actually got so frustrated with this that i wanted to burn something down because that's a totally normal reaction i guess. anyways, then i started frantically searching for answers on the topic and EVERY. SINGLE. THING. THAT I FOUND. INCLUDED JAVASCRIPT.
i do not know javascript. i have not learned anything about it unlike css and html. it SCARES me and it is FRUSTRATING. but i thought i'd try it anyways. news flash that shit didn't work at all and i almost thought about scrapping the animation entirely especially when it randomly stopped working when i made certain changes, but i ended up eventually figuring out what i mentioned earlier (CSS transitions and the fact that you can assign them to only affect a specific change instead of everything) so with some dabbling here and there i eventually managed to finally figure out how to make everything smooth through pure css and although it still snaps if the element hasn't finished animating i'm happy with it.
Tumblr media
moving on to another thing, i wanted to then make a sound effect play when you click the button. yes, we are still talking about buttons. THIS i could not do with css, like, at all. javascript admittedly is for interactivity and i had already been bending the rules quite a bit with the animations since those teechnically should've been done with javascript as well but this? this was impossible without javascript. so i found a free mp3, and searched up a nice little tutorial on the very basics of javascript.
little did I know that apparently, this would be my own personal little hell.
see, no matter how many times i tried a different script, the sound just would not work like at all. i'd do everything in what i assumed to be the correct way, and no matter what, it would not play. knowing that i'd just have to revisit this, i decided it was best to just sort of put it on the back burner.
and this is where i wish i could say this is the end of my absolutely gobstopping rant. however, i cannot.
see, one thing that i really like that i've seen in a lot of other people's sites is draggable windows. i think they're sick. but this ALSO requires javascript, but i didn't think this could POSSIBLY be that bad since so many people did it.
...right?.......right? guys. right?
MOTHERFUCKER I WAS SO WRONG.
see, it turns out that a lot of people do this sort of thing with jQuery, specifically for user interfaces. but vscode doesn't have a "user friendly" way to get jquery to work with it. and because i don't want to mess with program files, i decided that logically speaking jquery just makes writing things in js scripts less complicated and doesn't introduce things that are impossible in vanilla javascript so i decided i could suffer a little bit and try and do things without jquery.
this led me to looking at many sites with draggable windows to look at their own scripts, in which every single time i tried replicating things i FAILED.
i eventually stumbled upon a nice code that worked. but the issue with it - in which unfortunately i can't find it, else i'd link it - is that it works with not only element classes but also a specific ID. see, this would be fine if i only wanted ONE draggable element. but i want multiple. and i thought that maybe if i just duplicated the script and dedicated it to a different ID and changed function names it would work but nooo life cannot be this easy apparently. so after setting up my webmaster status window, getting that to work, i tried doing the aforementioned method for what will eventually be a guestbook of sorts. it failed.
so i decided, "hey i'll revisit this later!!" and i went on to finding a way to implement a status widget into my site. this honestly was really easy as i ended up stumbling upon status.cafe . so i registered, eventually got my account activated, and i got it working in my live port of vscode just fine!! all is good in the world.
well that's what i thought until i found out that since i had created my neocities account in march of 2024, and i'm unemployed since i'm still in high school hence i have a free account, that i could not. use the widget. in neocities. so i tried finding a work around, found this handy guide (which is genuinely useful by the way) and set up things through a RSS feed instead which is essentially just a work around that complies with the security restrictions of neocities that i'm bound by. anyways, this works great but i literally just can't customize it to how i want so this is another fail. then i find imood.com which, although is NICE, doesn't suit what i want on its own. so i'm at a loss here too.
so, again, another thing to put to the side i suppose.
Tumblr media
so i started working on getting my guestbook, browsed through people's homepages again, and found chattable . and you probably think i have another paragraph complaining about this but honestly i can't write about something when i can't figure out how to even create a chat to implement onto my site in the first place so...y'know.
plus, i honestly have no clue if it'll work on my site either due to security restrictions so this is fun!!
anyways, after dealing with all of this, i finally decided it was about time i ported what i had so far over onto my neocities account. which isn't actually that hard i just had to wipe all of my files, overwrite the content in my index.html file there and paste in what i have now, and then upload my new files. but for some god awful reason after i went through all of this chrome just. kept depending on my old stylesheet??? so i had to clear some of my browsing data and eventually everything was loading properly for me.
and THIS is finally the end of my ridiculous documentation concering my neocities adventure so far.
i have no doubts i'll end up ranting here AGAIN about all of this but for now this is all i have on my plate...besides finally caving and learning javascript for real and continuing to learn more about html and css. hopefully one day i'll stop having such frequent issues but now is not the time and i doubt that'll be anytime soon either.
moral of the story, if you want to start something new and pick up a new hobby, please for the love of all that is of substance in this world don't go in completely blind like i've done if you're going to be making a project of some sorts. it will only lead to many misfortunes.
anyways you can see what i currently have done in my neocities here, make suggestions or give advice in the notes and whatnot i don't know.
6 notes · View notes
terribleterrestrial · 11 months ago
Text
[ARCHIVED]
Hello hello, Tumblr!! I, TT, am the author of Apocalypse Abandon hosted on MSPFA!
This is a post asking for help with said comic! Currently, I am looking for a background artist, and anyone familiar with CSS/HTML coding! The work should be fairly simple however I do not have the income to pay a wage or anything like that. You will never be trapped working on it, though, and you are so free to back out any time!
Even if you believe yourself to be bad/average/etc at those skills, I would still love to have you on board if you want to expand them and improve along with me and the rest of the team (of uh.. two people right now haha). Below the cut is a short plot summary (without too many spoilers) and a few pieces of art (art will come as it is made and be uploaded here) you can peruse to see if you'd be interested in helping out. If not, i humbly request your reblog so I can find ppl who are :3
Apocalypse Abandon is a fancomic taking place (originally) on Earth C. It is very much meant to mimic Homestuck and sort of bring back some of the nostalgia of the Early Days whilst still showing a new, interesting story! It starts four main characters at first: Jule Jackson, Cris Warner, Xael Grison, and Remy Lalonde. These four, on the 13 of April 202X, are alerted by the Godtiers that it is their turn to save the universe by creating a new one. Despite half of the party (Xael and Cris) living in a post-apocalyptic Earth C overtaken by plant life, they manage to make it work! Jule is a gentle young lady with a green thumb and a love of crafts. She is the most active online and the youngest of the bunch. She is both clever and kind, a Sylph of Time, a savior. Cris is a bookworm, and even lives in a library! He is a big fan of Rose's work, having read everything she ever wrote on her adventures and SBURB. He is strict and precise, a Knight of Mind, an archivist. Remy is the "son" of Roxy Lalonde. He is a direct genetic replica of her, and yet tries his best to be his own person. He is not so fond of his mother, who has fallen victim to existentialism and back into bad habits. She has become something of a mad scientist these days, mixed with a cat lady. Remy is a shy and mindful young boy, he doesn't know what is future holds. A Page of Void, an opportunity. Xael is a little rascal, sometimes seeming more animal than human. That’s exactly how he likes it! He scavenges for food, chipping his teeth on bones, and sleeping soundly curled up in the catacombs. He is ravenous and rabid, a Prince of Doom, a destroyer.
I dont have a TON of the plot planned out, as I prefer to write as we go along. I am always open to suggestions from anyone and happy to co sider them!!
Once again, PLEASE at least reblog this, especially if you read this far. It would seriously help me out so insanely much. Thank you for reading!!!
29 notes · View notes