#oddbird
Explore tagged Tumblr posts
funhaversclub · 2 years ago
Video
tumblr
Tumblr media
Super OddBird?
Friends of mine own a pizza place and have a few arcade machines in there. Years ago I built a tabletop “arcade” and haven't done anything with it...
https://funhaversclub.tumblr.com/post/35130939687/this-is-part-1-of-2-ive-been-somewhat-shadowing
Tumblr media
I figured I’d donate it to them... But I couldn’t just let them have any normal game! I waned to give them something special! Before the pizza place they started their bar OddBird so I wanted to make a video game for that. After pulling my hair out trying to program a game from scratch I decided to just take Super Mario World and make the characters look like a sketch I had done for them:
Tumblr media
The old title screen and first level rough layout:
Tumblr media Tumblr media
I Have most of the Small Mario sprites done. In Super OddBird you start as a little chick!
Tumblr media
Ideally Mario and Luigi will look something like this. (These were from the custom game before I kiboshed that)
Tumblr media Tumblr media
(sorry for the potato quality gif)
Remaking the Logo was a bit nutty...
Tumblr media
...Hopefully I’ll finish this sooner than later. In the meantime if you’re in the area defiantly check out their establishments. 
Tumblr media Tumblr media
PS: If you bring your own eggs and ask for a “Low Key Triggered” you’ll receive one of the best eggs benedict I’ve ever tasted... But that’s a secret... So good I had to sketch it.
Tumblr media
PS2: I almost forgot... I also painted one of their washrooms with this neat animal theme!
Tumblr media
1 note · View note
Text
Wednesday, November 23, ‘22
I apologize 
for these wild antics heard while
I’m jamming my jaw. 
-DMRoberts-
0 notes
toppermostpoppermost · 1 month ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
JASON LEE as Jeff Bebe
ALMOST FAMOUS (2000) dir. Cameron Crowe
182 notes · View notes
thisbuildinghasfeelings · 11 days ago
Text
Tumblr media
As we approach the end of our beloved show, I thought it would be fun to do a little reminiscing! The end of the show certainly doesn't mean the end of the fandom, but it does move us into somewhat of a new phase. Before we get there, let's reflect on some of our favorite memories!
Describe one or two or three or more (it's up to you!) of your favorite fandom memories! It can be something really general and fandom-wide, like liveblogging a particularly good episode or the mass freakout after a really good still/clip/piece of BTS dropped. It can be something related to fanworks you or others have created--your favorite fic that changed the way you looked at the show, a piece of art you posted that got a really good response, or participating in a fic exchange. It can be something more personal, like fandom friendships you've formed or even a really good post you made that you're particularly proud of. ANYTHING GOES!
This is open to EVERYONE who considers themselves even remotely part of the fandom--whether you've been here for 5 years or 5 minutes! I'll be tagging a bunch of people and leaving an open tag as well. If you decide to share, feel free to tag others (or not)! And if you want to participate, there's no need to wait for a tag! (but I'd like it if you at least tag me because I want to read everyone's memories!)
OPEN TAG and
@lemonlyman-dotcom @ladytessa74 @carlos-in-glasses @heartstringsduet @she-walked-away
@annoyingcloudearthquake @lutavero @guardian-angle22 @reasonandfaithinharmony @paperstorm
@reyesstrand @strandnreyes @shes-an-oddbird @nancys-braids @captain-gillian
@morganaspendragonss @everlastingday @welcometololaland @rangersoup @rmd-writes
@hereghostslive @herefortarlos @theghostofashton @unstatedmartini @eclectic-sassycoweyes
@bonheur-cafe @literateowl @happilylovingchaos @carlos-tk @tellmegoodbye
@doublel27 @lonestardust @goodways @tinyluminaryzombie @carlossreaders
@chicgeekgirl89 @alrightbuckaroo @mrs-corrections-78 @firstprince-history-huh @fitzherbertssmolder
@freneticfloetry @henrygrass @whatsintheboxmh @laelipoo @lightningboltreader
@the-126-family @emsprovisions @ironheartwriter @nisbanisba @goldenskykaysani
72 notes · View notes
annoyingcloudearthquake · 1 month ago
Text
Work Is Published Wednesday
Happy Wednesday! Have some art for this time around!
Tumblr media
This one was for and based off of @the-126-family’s headcanons of Paul having two cats named Sherlock and Waston and then Asha having one named Arthur! They’re super sweet and their headcanons are awesome too!!
Tumblr media
This piece was for and based off of @shes-an-oddbird’s fic “It’s Not So Weird Afterall” It is such an amazing Nanteo fic and it shows all the little moments the show skipped over and how the twos relationship grew! Honestly yall need to check out all of their fics, they’re amazing especially if you like nanteo
No pressure tagging @lemonlyman-dotcom @shes-an-oddbird @vulcanmourns @whatsintheboxmh @she-walked-away @ladytessa74 @thisbuildinghasfeelings @bonheur-cafe @lonestardust @everlastingday @rangersoup @paperstorm @chicgeekgirl89 @nisbanisba @tailoredshirt @firstprince-history-huh @heartstringsduet @carlos-in-glasses @doublel27
40 notes · View notes
911lshomemadeseason6 · 5 days ago
Text
Lone Star Season 6 Challenge
(Had technical difficulties with og post) I am fully aware it’s hasn’t even been a day after the finale and you’re probably thinking “wtf???” (Eh they usually would announce the renewal near the end of the season, right?) Well I cooked up a possible challenge for us to do to either A. Distract ourselves from the end or B. To just have fun
Basically the idea is like the game Exquisite Corpse (thanks @nisbanisba for letting me know the name)
Someone writes the starting plot lines for the first episode of “season 6”. They tag someone to continue episode 2 and that person adds onto the plot and proceeds to pass it onto another person and they add their own continuation until we reach a full season.
It wouldn’t have to be super detailed or anything, just a simple idea for an episode and would have connecting plot lines. It’s basically to get a season with everything we wanted but also it’s a challenge because you have to figure out how to continue the storylines other people created.
The hypothetical season length is currently 25 episodes but tell me if it’s too little or too many!
If anybody is interested in this just let me know and I’ll probably post the rules in like a week! It’d be at least 2 months before the actual challenge would start because I have other challenges I want to do but it would give time to get ideas going! Or tell me if this is a stupid idea lol
tagging @lemonlyman-dotcom @shes-an-oddbird @the-126-family @whatsintheboxmh @rangersoup @nisbanisba @she-walked-away @tellmegoodbye @doublel27 @bonheur-cafe @lightningboltreader @eclectic-sassycoweyes @pimento-playing-hopscotch @paperstorm @ladytessa74 @thisbuildinghasfeelings @tellmegoodbye @marjansmarwani @tailoredshirt @carlos-in-glasses @lonestardust @everlastingday @guardian-angle22 @heartstringsduet @firstprince-history-huh in case you’re interested but if not or you don’t want to be tagged just let me know
30 notes · View notes
lonestar-s5countdown · 5 months ago
Text
We have a bit of a different game this week to help us all engage in some final season 5 speculation! Send some asks with emojis to get the speculation conversation going:
3️��� What are three things you’re hoping to see in season 5?
👬 What Tarlos moments are you most looking forward to?
🤗 Which character are you most excited to see in season 5?
🤏Which minor character(s) will we see again?
🍭 What new terms of endearment do you think we might hear from TK and Carlos?
💔 Which couple is most in danger of breaking up?
💒 Who is most likely to get married?
🔫 Who murdered Gabriel?
🔍 How will Grace’s absence be explained?
👩‍🚒 Who is going to take Judd’s lieutenant position?
🩹 How is Robert’s death going to impact Owen?
🚑 How does Nancy become captain?
🤠 What are your thots on the two belts and the rest of Carlos’ Ranger uniform?
💍 How will TK and Carlos celebrate their anniversary?
🧑‍🍼 What is going to happen with Jonah and Enzo?
👶 How old is Jonah?
🗻 How do you think Tommy and Trevor’s relationship will progress?
☎️ How will Wyatt do as the new dispatcher?
🕺 How does Judd make it back to the firehouse?
⚰️ Will anyone die this season?
Tagging some people who might be interested to help get us started:
@lemonlyman-dotcom @strandnreyes @she-walked-away @ladytessa74 @herefortarlos
@thisbuildinghasfeelings @paperstorm @heartstringsduet @alrightbuckaroo @happilylovingchaos
@fifthrideroftheapocalypse @literateowl @birdclowns @nancys-braids @emsprovisions
@tellmegoodbye @ironheartwriter @bonheur-cafe @tkslittlesway @theghostofashton
@goldenskykaysani @toomanycupsoftea @carlos-in-glasses @guardian-angle22 @reyesstrand
@welcometololaland @rmd-writes @lightningboltreader @tinyluminaryzombie @sugdenlovesdingle
@shes-an-oddbird @decafdino @butchreyes @corsage @the-126-family
58 notes · View notes
airsllides · 7 months ago
Text
Tumblr media
Airsllide No. 10138: N510DA, Boeing 727-232 Adv., Delta Air Lines, San Diego, February 6, 1994.
Take a second look at this Delta Boeing 727 - did you notice the winglets? N510DA was one of two 727s the carrier fitted with winglets in 1993 in order to test the effects in terms of fuel savings. Given the short service period left, the benefits compared to the investment did obviously not justify re-fitting the rest of the fleet, and N510DA together with her sister N511DA remained the only two oddbirds in Delta's 196 units strong Boeing 727 fleet.
4 notes · View notes
enchantedchocolatebars · 1 year ago
Text
Hc: In terms of children's books, I think Kid Caleb would like "Oddbird" (the birds are so pretty and colorful + he likes the ending) and "Giggle, Giggle, Quack" (it's super silly + he finds the duck funny) and Kid Philip would like "The Artist Who Painted A Blue Horse" (the book features a blue horse and other colored animals) and "Where the Wild Things Are" (the boy is feral and so is he).
7 notes · View notes
jcmarchi · 2 months ago
Text
One of Those “Onboarding” UIs, With Anchor Positioning
New Post has been published on https://thedigitalinsider.com/one-of-those-onboarding-uis-with-anchor-positioning/
One of Those “Onboarding” UIs, With Anchor Positioning
Welcome to “Anchor Positioning 101” where we will be exploring this interesting new CSS feature. Our textbook for this class will be the extensive “Anchor Positioning Guide” that Juan Diego Rodriguez published here on CSS-Tricks.
I’m excited for this one. Some of you may remember when CSS-Tricks released the “Flexbox Layout Guide” or the “Grid Layout Guide” — I certainly do and still have them both bookmarked! I spend a lot of time flipping between tabs to make sure I have the right syntax in my “experimental” CodePens.
I’ve been experimenting with CSS anchor positioning like the “good old days” since Juan published his guide, so I figured it’d be fun to share some of the excitement, learn a bit, experiment, and of course: build stuff!
CSS Anchor Positioning introduction
Anchor positioning lets us attach — or “anchor” — one element to one or more other elements. More than that, it allows us to define how a “target” element (that’s what we call the element we’re attaching to an anchor element) is positioned next to the anchor-positioned element, including fallback positioning in the form of a new @position-try at-rule.
The most hand-wavy way to explain the benefits of anchor positioning is to think of it as a powerful enhancement to position: absolute; as it helps absolutely-positioned elements do what you expect. Don’t worry, we’ll see how this works as we go.
Anchor positioning is currently a W3C draft spec, so you know it’s fresh. It’s marked as “limited availability” in Baseline which at the time of writing means it is limited to Chromium-based browsers (versions 125+). That said, the considerate folks over at Oddbird have a polyfill available that’ll help out other browsers until they ship support.
This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.
Desktop
Chrome Firefox IE Edge Safari 125 No No 125 No
Mobile / Tablet
Android Chrome Android Firefox Android iOS Safari 131 No 131 No
Oddbird contributes polyfills for many new CSS features and you (yes, you!) can support their work on Github or Open Collective!
Tab Atkins-Bittner, contributing author to the W3C draft spec on anchor positioning, spoke on the topic at CSS Day 2024. The full conference talk is available on YouTube:
Here at CSS-Tricks, Juan demonstrated how to mix and match anchor positioning with view-driven animations for an awesome floating notes effect:
Front-end friend Kevin Powell recently released a video demonstrating how “CSS Popover + Anchor Positioning is Magical”.
And finally, in the tradition of “making fun games to learn CSS,” Thomas Park released Anchoreum (a “Flexbox Froggy“-type game) to learn about CSS anchor positioning. Highly recommend checking this out to get the hang of the position-area property!
The homework
OK, now that we’re caught up on what CSS anchor positioning is and the excitement surrounding it, let’s talk about what it does. Tethering an element to another element? That has a lot of potential. Quite a few instances I can remember where I’ve had to fight with absolute positioning and z-index in order to get something positioned just right.
Let’s take a quick look at the basic syntax. First, we need two elements, an anchor-positioned element and the target element that will be tethered to it.
<!-- Anchor element --> <div id="anchor"> Anchor </div> <!-- Target element --> <div id="target"> Target </div>
We set an element as an anchor-positioned element by providing it with an anchor-name. This is a unique name of our choosing, however it needs the double-dash prefix, like CSS custom properties.
#anchor anchor-name: --anchor;
As for our target element, we’ll need to set position: absolute; on it as well as tell the element what anchor to tether to. We do that with a new CSS property, position-anchor using a value that matches the anchor-name of our anchor-positioned element.
#anchor anchor-name: --anchor; #target position: absolute; position-anchor: --anchor;
May not look like it yet, but now our two elements are attached. We can set the actual positioning on the target element by providing a position-area. To position our target element, position-area creates an invisible 3×3 grid over the anchor-positioned element. Using positioning keywords, we can designate where the target element appears near the anchor-positioned element.
#target position: absolute; position-anchor: --anchor; position-area: top center;
Now we see that our target element is anchored to the top-center of our anchor-positioned element!
Anchoring pseudo-elements
While playing with anchor positioning, I noticed you can anchor pseudo-elements, just the same as any other element.
#anchor anchor-name: --anchor; &::before content: "Target"; position: absolute; position-anchor: --anchor; left: anchor(center); bottom: anchor(center);
Might be useful for adding design flourishes to elements or adding functionality as some sort of indicator.
Moving anchors
Another quick experiment was to see if we can move anchors. And it turns out this is possible!
Notice the use of anchor() functions instead of position-area to position the target element.
#target position: absolute; position-anchor: --anchor-one; top: anchor(bottom); left: anchor(left);
CSS anchor functions are an alternate way to position target elements based on the computed values of the anchor-positioned element itself. Here we are setting the target element’s top property value to match the anchor-positioned element’s bottom value. Similarly, we can set the target’s left property value to match the anchor-positioned element’s left value.
Hovering over the container element swaps the position-anchor from --anchor-one to --anchor-two.
.container:hover #target position-anchor: --anchor-two;
We are also able to set a transition as we position the target using top and left, which makes it swap smoothly between anchors.
Extra experimental
Along with being the first to release CSS anchor-positioning, the Chrome dev team recently released new pseudo-selectors related to the <details> and <summary> elements. The ::details-content pseudo-selector allows you to style the “hidden” part of the <details> element.
With this information, I thought: “can I anchor it?” and sure enough, you can!
Again, this is definitely not ready for prime-time, but it’s always fun to experiment!
Practical examinations
Let’s take this a bit further and tackle more practical challenges using CSS anchor positioning. Please keep in mind that all these examples are Chrome-only at the time of writing!
Tooltips
One of the most straightforward use cases for CSS anchor positioning is possibly a tooltip. Makes a lot of sense: hover over an icon and a label floats nearby to explain what the icon does. I didn’t quite want to make yet another tutorial on how to make a tooltip and luckily for me, Zell Liew recently wrote an article on tooltip best practices, so we can focus purely on anchor positioning and refer to Zell’s work for the semantics.
Now, let’s check out one of these tooltips:
<!-- ... -->; <li class="toolbar-item">; <button type="button" id="inbox-tool" aria-labelledby="inbox-label" class="tool"> <svg id="inbox-tool-icon"> <!-- SVG icon code ... --> </svg> </button> <div id="inbox-label" role="tooltip"> <p>Inbox</p> </div> </li> <!-- ... -->
The HTML is structured in a way where the tooltip element is a sibling of our anchor-positioned <button>, notice how it has the [aria-labelledby] attribute set to match the tooltip’s [id]. The tooltip itself is a generic <div>, semantically enhanced to become a tooltip with the [role="tooltip"] attribute. We can also use [role="tooltip"] as a semantic selector to add common styles to tooltips, including the tooltip’s positioning relative to its anchor.
First, let’s turn our button into an anchored element by giving it an anchor-name. Next, we can set the target element’s position-anchor to match the anchor-name of the anchored element. By default, we can set the tooltip’s visibility to hidden, then using CSS sibling selectors, if the target element receives hover or focus-visible, we can then swap the visibility to visible.
/* Anchor-positioned Element */ #inbox-tool anchor-name: --inbox-tool; /* Target element */ [role="tooltip"]#inbox-label position-anchor: --inbox-tool /* Target positioning */ [role="tooltip"] position: absolute; position-area: end center; /* Hidden by default */ visibility: hidden; /* Visible when tool is hovered or receives focus */ .tool:hover + [role="tooltip"], .tool:focus-visible + [role="tooltip"] visibility: visible;
Ta-da! Here we have a working, CSS anchor-positioned tooltip!
As users of touch devices aren’t able to hover over elements, you may want to explore toggletips instead!
Floating disclosures
Disclosures are another common component pattern that might be a perfect use case for anchor positioning. Disclosures are typically a component where interacting with a toggle will open and close a corresponding element. Think of the good ol’ <detail>/<summary> HTML element duo, for example.
Currently, if you are looking to create a disclosure-like component which floats over other portions of your user interface, you might be in for some JavaScript, absolute positioning, and z-index related troubles. Soon enough though, we’ll be able to combine CSS anchor positioning with another newer platform feature [popover] to create some incredibly straightforward (and semantically accurate) floating disclosure elements.
The Popover API provides a non-modal way to elevate elements to the top-layer, while also baking in some great functionality, such as light dismissals.
Zell also has more information on popovers, dialogs, and modality!
One of the more common patterns you might consider as a “floating disclosure”-type component is a dropdown menu. Here is the HTML we’ll work with:
<nav> <button id="anchor">Toggle</button> <ul id="target"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> </ul> </nav>
We can set our target element, in this case the <ul>, to be our popover element by adding the [popover] attribute.
To control the popover, let’s add the attribute [popoveraction="toggle"] to enable the button as a toggle, and point the [popovertarget] attribute to the [id] of our target element.
<nav> <button id="anchor" popoveraction="toggle" popovertarget="target"> Toggle </button> <ul id="target" popover> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> </ul> </nav>
No JavaScript is necessary, and now we have a toggle-able [popover] disclosure element! The problem is that it’s still not tethered to the anchor-positioned element, let’s fix that in our CSS.
First, as this is a popover, let’s add a small bit of styling to remove the intrinsic margin popovers receive by default from browsers.
ul[popover] margin: 0;
Let’s turn our button into an anchor-positioned element by providing it with an anchor-name:
ul[popover] margin: 0; #anchor anchor-name: --toggle;
As for our target element, we can attach it to the anchor-positioned element by setting its position to absolute and the position-anchor to our anchor-positioned element’s anchor-name:
ul[popover] margin: 0; #anchor anchor-name: --toggle; #target position: absolute; position-anchor: --toggle;
We can also adjust the target’s positioning near the anchor-positioned element with the position-area property, similar to what we did with our tooltip.
ul[popover] margin: 0; #anchor anchor-name: --toggle; #target position: absolute; position-anchor: --toggle; position-area: bottom; width: anchor-size(width);
You may notice another CSS anchor function in here, anchor-size()! We can set the target’s width to match the width of the anchor-positioned element by using anchor-size(width).
There is one more neat thing we can apply here, fallback positioning! Let’s consider that maybe this dropdown menu might sometimes be located at the bottom of the viewport, either from scrolling or some other reason. We don’t really want it to overflow or cause any extra scrolling, but instead, swap to an alternate location that is visible to the user.
Anchor positioning makes this possible with the postion-try-fallbacks property, a way to provide an alternate location for the target element to display near an anchor-positioned element.
#target position: absolute; position-anchor: --toggle; position-area: bottom; postion-try-fallbacks: top; width: anchor-size(width);
To keep things simple for our demo, we can add the opposite value of the value of the postion-area property: top.
Shopping cart component
We know how to make a tooltip and a disclosure element, now let’s build upon what we’ve learned so far and create a neat, interactive shopping cart component.
Let’s think about how we want to mark this up. First, we’ll need a button with a shopping cart icon:
<button id="shopping-cart-toggle"> <svg id="shopping-cart-icon" /> <!-- SVG icon code ... --> </svg> </button>
We can already reuse what we learned with our tooltip styles to provide a functioning label for this toggle. Let’s add the class .tool to the button, then include a tooltip as our label.
<!-- Toggle --> <button id="shopping-cart-toggle" aria-labelledby="shopping-cart-label" class="tool"> <svg id="shopping-cart-icon" /> <!-- SVG icon code ... --> </svg> </button> <!-- Tooltip --> <div id="shopping-cart-label" role="tooltip" class="tooltip"> <p>Shopping Cart</p> </div>
We’ll need to specify our <button> is an anchor-positioned element in CSS with an anchor-name, which we can also set as the tooltip’s position-anchor value to match.
button#shopping-cart-toggle anchor-name: --shopping-cart-toggle; [role="tooltip"]#shopping-cart-label position-anchor: --shopping-cart-toggle;
Now we should have a nice-looking tooltip labeling our shopping cart button!
But wait, we want this thing to do more than that! Let’s turn it into a disclosure component that reveals a list of items inside the user’s cart. As we are looking to have a floating user-interface with a few actions included, we should consider a <dialog> element. However, we don’t necessarily want to be blocking background content, so we can opt for a non-modal dialog using the[popover] attribute again!
<!-- Toggle --> <button id="shopping-cart-toggle" aria-labelledby="shopping-cart-label" class="tool" popovertarget="shopping-cart" popoveraction="toggle"> <svg id="shopping-cart-icon" /> <!-- SVG icon code ... --> </svg> </button> <!-- Tooltip --> <div id="shopping-cart-label" role="tooltip" class="tooltip"> <p>Shopping Cart</p> </div> <!-- Shopping Cart --> <dialog id="shopping-cart" popover> <!-- Shopping cart template... --> <button popovertarget="shopping-cart" popoveraction="close"> Dismiss Cart </button> </dialog>
To control the popover, we’ve added [popovertarget="shopping-cart"] and [popoveraction="toggle"] to our anchor-positioned element and included a second button within the <dialog> that can also be used to close the dialog with [popoveraction="close"].
To anchor the shopping cart <dialog> to the toggle, we can set position-anchor and position-area:
#shopping-cart position-anchor: --shopping-cart; position-area: end center;
At this point, we should take a moment to realize that we have tethered two elements to the same anchor!
We won’t stop there, though. There is one more enhancement we can make to really show how helpful anchor positioning can be: Let’s add a notification badge to the element to describe how many items are inside the cart.
Let’s place the badge inside of our anchor-positioned element this time.
<!-- Toggle --> <button id="shopping-cart-toggle" aria-labelledby="shopping-cart-label" class="tool" popovertarget="shopping-cart" popoveraction="toggle"> <svg id="shopping-cart-icon" /> <!-- SVG icon code ... --> </svg> <!-- Notification Badge --> <div id="shopping-cart-badge" class="notification-badge"> 1 </div> </button> <!-- ... -->
We can improve our tooltip to include verbiage about how many items are in the cart:
<!-- Tooltip --> <div id="shopping-cart-label" role="tooltip"> <p>Shopping Cart</p> <p>(1 item in cart)</p> </div>
Now the accessible name of our anchor-positioned element will be read as Shopping Cart (1 item in cart), which helps provide context to assistive technologies like screen readers.
Let’s tether this notification badge to the same anchor as our tooltip and shopping cart <dialog>, we can do this by setting the position-anchor property of the badge to --shopping-cart-toggle:
#shopping-cart-badge position: absolute; position-anchor: --shopping-cart-toggle;
Let’s look at positioning. We don’t want it below or next to the anchor, we want it overlapping, so we can use CSS anchor functions to position it based on the anchor-positioned element’s dimensions.
#shopping-cart-badge position: absolute; position-anchor: --shopping-cart-toggle; bottom: anchor(center); left: anchor(center);
Here we are setting the bottom and left of the target element to match the anchor’s center. This places it in the upper-right corner of the SVG icon!
Folks, this means we have three elements anchored now. Isn’t that fantastic?
Combining things
To put these anchor-positioned elements into perspective, I’ve combined all the techniques we’ve learned so far into a more familiar setting:
Disclosure components, dropdown menus, tooltips (and toggletips!), as well as notification badges all made much simpler using CSS anchor positioning!
Final project
As a final project for myself (and to bring this whole thing around full-circle), I decided to try to build a CSS anchor-positioned-based onboarding tool. I’ve previously attempted to build a tool like this at work, which I called “HandHoldJS” and it… well, it didn’t go so great. I managed to have a lot of the core functionality working using JavaScript, but it meant keeping track of quite a lot of positions and lots of weird things kept happening!
Let’s see if we can do better with CSS anchor positioning.
Feel free to check out the code on CodePen! I went down quite a rabbit hole on this one, so I’ll provide a bit of a high-level overview here.
<hand-hold> is a native custom element that works entirely in the light DOM. It sort of falls into the category of an HTML web component, as it is mostly based on enabling its inner HTML. You can specify tour stops to any element on the page by adding [data-tour-stop] attributes with values in the order you want the tour to occur.
Inside the <hand-hold> element contains a <button> to start the tour, a <dialog> element to contain the tour information, <section> elements to separate content between tour stops, a fieldset[data-handhold-navigation] element which holds navigation radio buttons, as well as another <button> to end the tour.
Each <section> element corresponds to a tour stop with a matching [data-handhold-content] attribute applied. Using JavaScript, <hand-hold> dynamically updates tour stops to be anchor-positioned elements, which the <dialog> can attach itself (there is a sneaky pseudo-element attached to the anchor to highlight the tour stop element!).
Although the <dialog> element is attached via CSS anchor positioning, it also moves within the DOM to appear next to the anchor-position element in the accessibility tree. The (well-meaning) intention here is to help provide more context to those who may be navigating via assistive devices by figuring out which element the dialog is referring to. Believe me, though, this thing is far from perfect as an accessible user experience.
Also, since the <dialog> moves throughout the DOM, unfortunately, a simple CSS transition would not suffice. Another modern browser feature to the rescue yet again, as we can pass a DOM manipulation function into a View Transition, making the transitions feel smoother!
There is still quite a lot to test with this, so I would not recommend using <hand-hold> in a production setting. If for no other reason than browser support is quite limited at the moment!
This is just an experiment to see what I could cook up using CSS anchor positioning, I’m excited for the potential!
Class dismissed!
After seeing what CSS anchor positioning is capable of, I have suspicions that it may change a lot of the ways we write CSS, similar to the introduction of flexbox or grid.
I’m excited to see what other user interface patterns can be accomplished with anchor positioning, and I’m even more excited to see what the community will do with it once it’s more broadly available!
0 notes
streetsofsligo · 4 months ago
Text
Tumblr media
hitcher ⁉ oddbird some of these letters don't exist in our alphabet
0 notes
giftideasfromaycaramba · 7 months ago
Text
Tumblr media
It's okay to be exactly who you are. This is an inspiring and heartwarming found family narrative that's perfect for modern times.
0 notes
funhaversclub · 7 months ago
Text
Tumblr media Tumblr media
Next door to Oddbird is a luvly board game cafe called Ludology.
I made a little homage to them in the form of a SNES game case!
Instead of Mario riding Yoshi, it is the store owner! The background is the street the cafe is on! If you look close... all the info on the box has to do with Ludology!
Check them out!
Tumblr media
Here's Ludology:
0 notes
annoyingcloudearthquake · 2 days ago
Text
@shes-an-oddbird these might help with the fic reference for injuries!
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
natacha.karam: I keep trying to get myself to make a ‘goodbye Marjan' post but it's too hard to attempt to distill 5 years and 72 episodes into one carousel .. instead here's some pics from season 5 - mostly the finale episode. My life has changed immeasurably since starting this job. The amount of grief I feel that it's over is directly proportional to the amount of love and gratitude I have for everyone I worked with. What a journey. The ups, downs and everything in between. The 126 is truly forever in my heart- l've made friends that will last a lifetime and have had so much fun doing it. I count my lucky stars for the day the audition for 911 Lonestar landed in my inbox. Thank you for all your support - thank you for watching, thank you for your kind words over the last 5 years. Whatever I do next it will be my honour to keep sharing my journey with you all.
148 notes · View notes
annoyingcloudearthquake · 1 month ago
Text
Tumblr media
I try every time but I can’t seem to catch you
M / 20k / 6 Chapters
Hello hello! This is my first multi chapter fic in the fandom and I’m so excited to share it! If anyone has been following, this is the timeloop fic I’ve been working on! Hope y’all enjoy! :D
Time is a fickle thing. You think you have so much of it for both yourself and the people you love but often that can come crashing down. Very rarely do people get a warning the day their world collapses. Unfortunately Mateo Chavez did not get that luxury.
Prologue
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
@vulcanmourns, thanks for beta reading! (Even if it was like being forced into a demon deal lol) and lots of appreciation to @lemonlyman-dotcom, @the-126-family, and @shes-an-oddbird y’all have been so impossibly sweet and I can’t thank you enough for it!
Completed!
38 notes · View notes
911lshomemadeseason6 · 2 days ago
Text
PSA 4 days left on the poll for Season 6 “Air” Date!
Poll: here
Info about challenge: here
If you don’t mind I’m tagging @lemonlyman-dotcom @shes-an-oddbird @the-126-family @tellmegoodbye @firstprince-history-huh @lightningboltreader @eclectic-sassycoweyes @kiwichaeng @bonheur-cafe @mrs-corrections-78 @kemmi @doublel27 @tailoredshirt @carlos-tk @alrightbuckaroo @emsprovisions @everlastingday @pimento-playing-hopscotch @feministteapot @lyricallyharley @sweetest-devotion
If you wish to be taken off just let me know!
6 notes · View notes