Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

subtle css border pulse effect w/ :active + offset opacity transition 🧑‍🍳 button::after { border: 1px solid #000; opacity: 0; transition: opacity 0.6s 0.1s var(--ease); } button:active::after { opacity: 1; transition-duration: 0s; }

44,884 görüntüleme • 7 ay önce •via X (Twitter)

0 Yorum

Yorum bulunmuyor

Orijinal gönderinin yorumları burada görünecek

Benzer Videolar

CSS Trick 🧲 You can create magnetic links with the power of custom properties and some JavaScript 💪 a { translate: calc(clamp(-1, var(--x), 1) * var(--pad-x)) ...; transition: translate var(--s, 1s) var(--ease, var(--elastic)); } a:hover { --s: 0s; } The trick here is to pad out the list items wrapping your links and use that as a translation limit 🛑 Start by using some JavaScript to calculate a value between -1 and 1 for both the x/y axis on pointermove for each list item, not the link! 🔗 If your pointer was at the center of the item, you'd get [0,0]. If it was in the top right, you'd get [1,-1] ☝️ It's worth checking out the JavaScript snippet to see how the mapping function works. Essentially, you create a function that when given a value between two bounds, will give you a mapped value back 🤙 const mapX = mapRange( item.offsetWidth * -0.5, item.offsetWidth * 0.5, 1, -1 ) Then, on pointermove, you plug the pointer position in to get the value back out and pass that into your CSS const x = mapX(item.centerX - event.x) document​.documentElement​.style.setProperty(--x, x) When the pointer leaves the list item, you make sure to reset these values back to 0 ✨ Once CSS has your values, it's the trick of updating the translation of each part You know that in each axis, you only want to translate the link by the padding amount li a { translate: calc(clamp(-1, var(--x), 1) * var(--pad-x)) calc(clamp(-1, var(--y), 1) * var(--pad-y)); transition: translate var(--speed, 1s) var(--ease, var(--elastic)); } This will translate the link within the list item by the desired amount. The cool part here is that you can set an offset for the text inside the link and have that move at a different rate ⭐️ By only updating the --pad-x/y custom properties for the inside the link, you can control how much it moves nav a span { --pad-x: 0.25rem; --pad-y: 0.25rem; } And the last piece, how do you update the behavior for transition speeds? And so it springs back like that? Again, use custom properties ✨ a:hover { --s: 0s; } a { transition: translate var(--s, 1s) var(--ease, var(--elastic)); } By default, a link will use --elastic easing via linear() and have a transition-duration of 1s. When a link is hovered that speed becomes 0s because you want the link to magnetise to your pointer. How about that little gap between when your pointer enters the item but hasn't hovered the link? Set a different transition so it transitions to being hovered 🫶 nav li:hover a { --ease: ease-out; --speed: 0.1s; } That's kinda it! 🙌 Use JavaScript (~40 loc) to get the information and then let CSS do all the lifting for you 💪 Any questions or suggestions, let me know 🙏 If you want a walkthrough video, also let me know please 🙏 CodePen.IO link below 👇

jhey ʕ•ᴥ•ʔ

164,863 görüntüleme • 2 yıl önce

CSS Tip! ✨ It's 2024 and you have a new way to make animated borders 🚀 .glow::after { offset-path: rect(0 100% 100% 0 round var(--radius)); animation: loop; } @​keyframes loop { to { offset-distance: 100%; }} Using the offset-* properties you can animate elements along the perimeter of others 😍 The rect() value gained support in Safari 17.2 🙌 To start, you create an element and put it inside your main element. For example, you put a span inside the button 🤙 Click me! Make the element fill its parent with absolute positioning and inset [data-glow] { position: absolute; inset: 0; } Now the good part, you use a pseudoelement on that element and define an offset-path [data-glow]::after { content: ""; offset-path: rect(0 auto auto 0 round var(--radius)); animation: loop 2.6s infinite linear; } With the rect value, you are saying the path fills the parent container: top: 0 right: auto || 100% bottom: auto || 100% left: 0 Then you can use round to make sure the path uses the same radius as whatever the parent has The @​keyframes animation merely animates the offset-distance of that pseudoelement to 100% @​keyframes loop { to { offset-distance: 100%; }} You can see this more clearly in the video 🫶 The offset-* properties also include an offset-anchor property. This allows you to dictate which point of the element follows the path. For example: anchor-offset: 100% 50%; This means that the "right, center" of the element will follow the perimeter of the parent element 🤙 Lastly, the visuals 🎨 For color, you can use a gradient such as a linear gradient to fill the pseudo-element. [data-glow]::after { background: radial-gradient( circle at right, hsl(320 90% 100%), transparent 50% ); } Then clip away everything so you only have the border and can still have translucent backgrounds, etc. Use a mask with mask-composite ✨ A little transparent border trick: [data-glow] { border: 2px solid transparent; mask: linear-gradient(transparent, transparent), linear-gradient(white, white); mask-clip: padding-box, border-box; mask-composite: intersect; } Bit of a long one. Hope you find it useful 🙏 CodePen.IO link below 👇

jhey ʕ•ᴥ•ʔ

283,498 görüntüleme • 2 yıl önce

CSS Tip! 🤯 You can create a CSS-only version of this balance slider using a scroll animation on the underlying input[type=range] 🚀 ::-webkit-slider-thumb { view-timeline: --thumb inline; } Scroll animation driven by the slider thumb animates a number between the "min" and "max" of the range 😅 @​property --value { inherits: true; initial-value: 0; syntax: ' '; } @​keyframes sync { to { --value: 100; }} Tie that up to the contain animation-range ⚡️ .control { animation: sync both linear reverse; animation-timeline: --thumb; animation-range: contain; } Hoist the view timeline so all the parts of the control can use it! .control { timeline-scope: --thumb; } Use that value in a counter which is used for the labels. Create a low and a high for each side 😇 .control__label { counter-reset: low var(--value) high calc(100 - var(--value)); } .control__label::before { content: "COFFEE " counter(low) "%"; } .control__label::after { content: counter(high) "% MILK"; } That's the magic of updating the label values ✨ For the big track, it's a fake track. You can make use of the same --value property and do some calc() to work out the width of each part. .control__track::before { width: calc(var(--value) * 1% - 0.5rem); background: var(--coffee); border-radius: 4px; transition: width 0.1s; } The width leaves a little gap for the indicator piece 🤙 The color calculation for --coffee isn't too wild but again you can use the same --value .control__track { --coffee: hsl(24 74% calc( 24% + (30% * ((100 - var(--value, 0)) / 100)) / 1 ) / 0.4); } Now for the last piece. Making the track change height. You could set up another custom property and animate its value using the --thumb timeline too 🔥 @​property --shift { initial-value: 0; inherits: true; syntax: ' '; } @​keyframes shift { 0%, 31%, 61%, 100% { --shift: 0; } 32%, 60% { --shift: 1; } } Then use that --shift to update the translation of the label and height of the track 🤓 .label { transform: translateY(calc(var(--shift) * 50%)); transition: transform var(--speed) var(--timing); } Cool part here is that you can use the control to work out the @​keyframes percentages 😅 Oh. And the timing for that little bounce? Use the linear() function 😎 :root { --timing: linear( 0, 0.5007 7.21%, 0.7803 12.29%, 0.8883 14.93%, 0.9724 17.63%, 1.0343 20.44%, 1.0754 23.44%, 1.0898 25.22%, 1.0984 27.11%, 1.1014 29.15%, 1.0989 31.4%, 1.0854 35.23%, 1.0196 48.86%, 1.0043 54.06%, 0.9956 59.6%, 0.9925 68.11%, 1 ); } Should probably do a video on this one. Lots of little custom property tricks for sure! 💯 It's not too far off the range slider with the tooltip that came up previously As always, any questions, let me know! Also, this one only works in Chrome currently ✅🥲 This one's a bit rocket science ha 🚀 CodePen.IO link below! 👇

jhey ʕ•ᴥ•ʔ

377,586 görüntüleme • 2 yıl önce

CSS Tip! 📜 You can use scroll-driven animations to progressively enhance collapsing a floating call to action 🤏 .cta { animation: shrink; animation-timeline: scroll(); animation-range: 0 100px; } @​keyframes shrink { to { width: 48px; } } That's the gist of it. Use the body scroll position with animation-timeline: scroll(). Define the animation-range as when you have scrolled 100px. There's a little more though 🤓 That would "scrub" the width animation. Ideally, you want to trigger that animation. You could animate a custom property with steps() timing and use that to define the width ✨ @​property --scrub { syntax: ' '; inherits: true; initial-value: 0; } body { animation: scrub both steps(1, end); animation-timeline: scroll(); animation-range: 0 100px; } Then transition the --scrub property on the CTA and use it for the width 🤙 .cta { transition: --scrub 0.2s; width: calc(48px + (120px * (1 - (var(--scrub) / 100)))); } Other animations are a matter of preference and timing. For example, you could then make the hand wave, scale down the size, and then slide a gradient across 😉 They have the same structure and technique as the original concept. Waving the hand? 👋 Run it twice, offset the transform-origin. .hand { animation: wave both linear 2; animation-timeline: scroll(); animation-range: 30vh 50vh; transform-origin: 65% 75%; } @​keyframes wave { 50% { rotate: 20deg; } } How's it progressively enhanced? Wrap everything in a @​supports query and a @​media query. If there isn't support, users still get a good experience. It's a floating action button that's circular and already collapsed 🤙 @​supports(animation-timeline: scroll()) { @​media(prefers-reduced-motion: no-preference) {...} } Definitely have a play with the code. Amazing what we're going to be able to do with CSS alone! 🔥 CodePen.IO link below! 👇

jhey ʕ•ᴥ•ʔ

177,781 görüntüleme • 2 yıl önce

How I turn my templates into real landing pages. Works for any vibe coding platform or site. This is my full guide. I start with Gemini 3. I copy the HTML code and paste to Cursor/v0/lovable and prompt "Create a new landing page /page-name using this design but adapted to {site_name}. Replace the header and footer with the ones from my site. Adapt the whole page, keep everything: {HTML_code}" Details that can to be adapted or improved: Fonts: "Use {font_name} Google font for headings and {font_name} for body text." Icons: "Use Iconify {icon_set} icons" Colors: "Change primary color to blue. Everything else should be monotone." Bonus: "Make the outlines subtle" for a cleaner design. Animation intro/on scroll: "Animate when in view observed, fade in, slide in, blur in, element by element. Use 'both' instead of 'forwards'. Don't use opacity 0." Static to animated: "Animate details with {animate_type} and decorations.". Example types: line, beam animation, noodles, grid, sonar, etc. Background animation: "Apply the background animation using Unicorn Studio {animation_code}" Details to make your layout stand out: "Add vertical container-size lines. Add 01 02 03 number details." Stand out from generic-looking: "Make this more upscale with large tall fonts, Newsreader font and black and white agency". Adapt content: "Adapt the content to {copy and paste site texts}". Buttons: "Change main button to {code}. Add a 1px border beam animation around the pill-shaped button on hover." Adding sections like testimonials: "Adapt a new section after {section} using this code: {component code}". You can copy the code from Codepen, 21st dev or Aura. Responsiveness: "Make this responsive. Add a hamburger menu for mobile. Hide this {element} for mobile." Making forms work: "Make the form send an email to {your_email}". Payments: "Link the buy button to {LemonSqueezy payment link}". I use composer-1 for quick fixes. I finish with Claude Opus 4.5 for code reviews "Please review the code for performance and robustness". The template HTML code should give you a blueprint for all these, but I think it's important to keep iterating for your specific site.

Meng To

41,015 görüntüleme • 7 ay önce

CSS in 2024 🤯 You can create a range slider with updating value tooltip and color changing track without using any JavaScript 🤯 ::-webkit-slider-thumb{ view-timeline: --thumb inline; } Scroll animation on the slider thumb that animates a number between the "min" and "max" of the range 😅 @​property --value { syntax: ' '; } @​keyframes sync { to { --value: 100; }} Tie that up to the contain animation-range ⚡️ .control { animation: sync both linear reverse; animation-timeline: --thumb; animation-range: contain; } Hoist the view timeline so the tooltip can use the value too! :root { timeline-scope: --thumb; } Then use it in the counter which goes in the tooltip 😇 .tooltip { counter-reset: val var(--value); } .tooltip::after { content: counter(val); } Then the accent color is based on the value too 🎨 [type=range] { accent-color: hsl(var(--value) 90% 65%); } The magic from the quoted post is using anchor positioning on the range thumb to position that tooltip 👏 Never thought of that when working on the spec for this API. This API lets you tether elements to other elements. Using the pseudo is a clever move! ::-webkit-slider-thumb { anchor-name: --thumb; } .tooltip { position: absolute; anchor-default: --thumb; left: anchor(50%); bottom: calc(anchor(top) + 25%); } The last piece is the little bounce transition... OK. I used a line or two of JavaScript for that 🙏😬 const updateDelta = ({ movementX }) => { document​.documentElement​.style.setProperty('--delta-x', movementX) } document.body.addEventListener('pointermove', updateDelta) But only so you can pass the movement delta to CSS and then reset the position with linear() to get that bouncy transition 😎 .hint { rotate: calc(clamp(-60, var(--delta-x) * -1, 60) * 1deg); transition: rotate 1s linear( 0, 0.2178 2.1%, 1.1144 8.49%, ... ); } Should probably do a video on this one. Lots of little tricks to break down with it for sure! 💯 As always, any questions, let me know! Also, this one only works in Chrome Canary with the Experimental Web Platform Features flag enabled ✅ This one almost feels like rocket science ha 🚀 CodePen.IO link below! 👇

jhey ʕ•ᴥ•ʔ

251,867 görüntüleme • 2 yıl önce

How I created these landing pages with Gemini 3 from start to finish First, I start with the hero section. It includes the nav bar, eyebrow, headline, subheadline, cta, social proof and visual. I spend 50% of the time here because it sets the colors, typography, spacing, which AI uses for the rest of the site consistently. “Create the hero section for my {app} called {name} in the style of {reference_site}”. Pro tip: use a screenshot and you’ll get way better results. Let’s get into the details. For icons, I prompt: “Use Iconify {icon set name}”. Most people use Lucide, but there are hundreds of open-source sets on Iconify like Solar, HeroIcons, Iconoir, Phosphor, etc. Just need to mention in the prompt. Same for custom fonts. For the animation, I prompt: “Animate fade in, slide in, blur in, element by element. Use 'both' instead of 'forwards'. Don't use opacity 0.”. This creates a subtle intro animation the first time users land on your page. Gemini 3 is an excellent animator. For example, I created the beam animation with this prompt: “Add noodles that connect and beam animate into the right circle. Add subtle details to the right beam animation circle with sonar and decorations.” For background animation, I use Unicorn Studio. Remix one of their templates and watch people click on your cover like crazy. What can I say, people love lasers. In the hero or right below it, social proof is super important. You can put ratings or logos, or both. For logos, you can prompt: “Animate the logos with marquee animation looping infinitely using duplicated items and alpha mask.”. Now the CTA. AI always creates basic buttons, which is fine 99% of the time. But Gemini 3 now sets a high bar for baseline design, so you will need to stand out. That’s why I put the extra human touch on animations and lickable buttons. I suggest browsing UIVerse and Codepen for buttons and reference the code in your prompt: “Change main button {code} and secondary button {code}. Add a 1px border beam animation around the pill-shaped main button on hover.”. Once you’re happy with the hero, you’ll want to craft new sections based on your business. Features, action plan, pricing, testimonials, FAQ, CTA and footer are the popular ones. Insert a screenshot and prompt “Adapt a new section, change texts, names and numbers”. Gemini 3 is very smart. It reads your existing styles and site concept and will tastefully mold new designs to fit perfectly into your current site. Finally, repeat the same prompts for icons, buttons and animations. Use midjourney images and remix using Nano Banana Pro. Ask ChatGPT to come up with better headlines, features, ctas, etc. Don’t skip the human part, this is where you’re irreplaceable. Start prompting top-tier landing pages and watch your numbers grow.

Meng To

287,300 görüntüleme • 7 ay önce

🚨EXPOSED: Secret VIP Pickup at Fort Huachuca: Plane Goes Dark Then Upgrades to SAM702 – Charlie Kirk Hit Connection? Who Boarded the Ghost Plane?✈️ A significant development in flight tracking data has emerged that may bolster Candace Owens' ongoing suspicions regarding the circumstances surrounding Charlie Kirk's assassination, particularly her focus on Fort Huachuca. On September 7–9, 2025, a military aircraft designated RCH702 followed an unusual pattern: Departed Andrews Air Force Base, proceeded to Colorado Springs, Colorado, and then to Tucson, Arizona. After departing Tucson, its transponder signal ceased. The aircraft reappeared on September 9 as Special Air Mission SAM702, departing from Fort Huachuca, Arizona, en route to El Paso, Texas, before returning to Andrews. The transition to a SAM callsign is protocol-driven and occurs only when a high-level VIP is aboard, such as a Cabinet secretary, deputy secretary, Chairman or Vice Chairman of the Joint Chiefs of Staff, senior White House staff, agency heads (e.g., CIA or DHS), members of Congress on official delegations, or foreign dignitaries. SAM missions typically involve: Cabinet secretaries/deputies — e.g., Defense (Pete Hegseth), Homeland Security, or Intelligence-related roles inspecting electronic warfare/drone facilities. Joint Chiefs Chairman/Vice Chairman — or senior DoD officials overseeing Army Intelligence Center operations. White House senior staff — e.g., National Security Advisor or Chief of Staff on classified matters. Agency heads — CIA Director, DHS Secretary, or NSA for signals intelligence briefings. The lack of disclosure aligns with sensitive visits to intelligence installations. This opacity fuels legitimate questions, especially given timing near reported events. Extensive review of public schedules, White House announcements, and major news sources from those dates reveals no disclosed visits by Trump administration officials to Arizona. The absence of transparency regarding the passenger raises serious questions about the purpose of this stop. Further FOIA requests or congressional oversight may be needed for clarity. Fort Huachuca, a key U.S. Army installation specializing in intelligence, electronic warfare, and drone operations, is central to Candace Owens' inquiries into potential advanced technology involvement.This flight's timing—immediately preceding the assassination—and its link to a premier intelligence facility cannot be dismissed as coincidental. The public deserves full disclosure of the passenger manifest and the rationale for this mission. RT and Tag Candace Owens, Transparency is essential to restoring trust in the investigation. Be sure to FOLLOW my friend: Travis for Updates on this story. He brought this to my attention and has been digging deep into all these Suspicions Planes.

Project Constitution

160,456 görüntüleme • 7 ay önce

EllesmereUI's Biggest Patch since Raid Frames is live! Aug Evokers since Blizzard won't give you an active state on your CDM for Ebon Might, I decided to give you one. check out the video! This feature also allows trinkets/pots/racials to get custom active states Players who share profiles: you can now include your full spell layout (which spells go where) and per-spell settings for CDM when exporting profiles! ----------- Full patch notes with new features and bugfixes: **Profiles:** - **NEW:** Profile exports can now carry your entire Cooldown Manager setup - which spells sit on which bars plus every per-spell setting - for the specs you choose, so importing a profile recreates your CDM layout instantly. **CDM:** - **NEW:** Give any trinket, potion, racial, or custom spell an Active State that adds its own glow and color while active, plus a Cooldown State Effect that changes its look based on whether it's ready. - **NEW:** Sync your trinkets, potions, and racials across specs with one button so you only set them up once. - Sound pickers for Focus Cast Sound and per-buff Audio Effect now have a search box. - Pandemic glow's Apply to All now also syncs tracking bars and keeps the same glow style everywhere. - A trinket, potion, or racial already on another bar now auto-moves to the new bar instead of being grayed out. - A buff saved under two spell IDs now shows as a single icon in the buff bar preview. - Cooldowns you remove from Blizzard's Cooldown Manager now disappear from your previews, while trinkets, racials, and custom spells are kept. - Added tracking for the Nightborne racial (Arcane Pulse), which was missing from the racial list. **Tracking Bars:** - **NEW:** Grouped bars now pack together with no blank gaps, always filling the next available slot. - Eclipse (Solar) and Eclipse (Lunar) now each drive their own bar. - Switching specs while the page is open now refreshes the selected bar correctly. - Pandemic glow now fires for Lifebloom on you or a group member. **Resource Bars:** - **NEW:** A new GCD Bar fills over your global cooldown, with full control over size, position, color, and look. - Expand Power Bar if No Resource now also expands when the class resource is toggled off or disabled for the spec. - Fixed the threshold color not showing with Enhance 5 Bar Style. - The cast bar latency overlay now reads live latency, so spell queueing no longer stops it showing. **Raid Frames:** - **NEW:** New healer tools including heal-absorb text, a crowd-control glow on debuffs, and more ways to position and highlight dispellable debuffs. - The Auto Resize toggle is now a dropdown that scales Indicators & Auras and Tracked Buffs independently with frame size. - New Show Over Dispels toggle lifts the heal-absorb overlay above the dispel gradient. - Fixed custom (non-20-player) sizes loading at the wrong position after login. **Unit Frames:** - **NEW:** A non-tank threat border shadows your player frame when you pull or hold aggro, with Has Aggro and Close to Aggro colors. - **NEW:** Player health text gains Heal Absorb Amount and Heal Absorb Short options. - **NEW:** Mini frames and Boss frames gain a per-frame Bar Texture dropdown. - **NEW:** Boss frames gain a Hover Borders control with its own mouseover and target colors. - **NEW:** Independent Spacing X and Spacing Y sliders for buff and debuff icons. - **NEW:** Absorb and heal-absorb style dropdowns now include your installed SharedMedia textures (also on Raid Frames and Nameplates). - A new Hover Borders control lets you turn the mouseover highlight border on or off per frame. - New Show 2 for Boss option adds a second decimal to boss frame health text. - Buff and debuff Offset X/Y sliders now reach plus or minus 1500. - A new Cast Bar Position cog adds an Offset Y slider for the boss cast bar. - Player, target, and focus cast bars now show above other frames instead of behind them. - Cast bar timer text now has room so it no longer cuts off early. **Action Bars:** - **NEW:** A new When Not Dragonriding visibility mode hides a bar while skyriding and shows it the rest of the time. - The When Dragonriding option now also shows the bar in Druid Flight Form. - The stance bar now shows its GCD swipe even for spells that don't change form. - Bars are briefly forced visible while Myslot's window is open to stop a stall during import/export. **Minimap:** - **NEW:** Hovering the calendar button now shows your raid and dungeon lockouts with boss progress, server time, and time until the weekly reset. - The Omnium Folio button no longer goes missing or drifts after a loading screen, and its position and scale now persist. **Mythic+ Timer:** - **NEW:** A new Show Time Remaining toggle adds an MM:SS countdown to the +2/+3 threshold row that reddens as time runs out. - Fixed timer and detail text cutting off after a font swap. **Colors:** - **NEW:** A new Global Colors section lets you share one profile's custom colors across all profiles or give each profile its own. **Localization:** - **NEW:** Full Russian language support. **Auras, Buffs & Consumables:** - Warrior stance reminders now read the stance bar, so each spec is reminded of its correct stance and clears the moment it's active. - The Inky Black Potion reminder now clears after you drink the potion and reappears on cancel, expiry, or death. - The last-used flask, food, and weapon-enchant preference now saves correctly. **Nameplates:** - A new sync icon on the Pandemic Glow Style row applies the nameplate's pandemic glow to all CDM and tracking bars at once. **Chat:** - The Whisper Sound dropdown gained a search box. **Bags:** - Mythic Keystone dungeon abbreviations now split on hyphens (Nexus-Point Xenas shows as NPX) and handle localized names.

Ellesmere

51,499 görüntüleme • 1 ay önce