From dc6db80fa72286704849ef61ee0e5ccb5841cb09 Mon Sep 17 00:00:00 2001 From: Bradley Taunt Date: Tue, 2 Jul 2024 14:28:49 -0400 Subject: Conversion to barf for testing purposes --- _posts/2021-04-27-shiny-css-buttons.md | 99 ---------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 _posts/2021-04-27-shiny-css-buttons.md (limited to '_posts/2021-04-27-shiny-css-buttons.md') diff --git a/_posts/2021-04-27-shiny-css-buttons.md b/_posts/2021-04-27-shiny-css-buttons.md deleted file mode 100644 index 9f4f81a..0000000 --- a/_posts/2021-04-27-shiny-css-buttons.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: post -title: "Shiny, Animated CSS Buttons" -date: 2021-04-27 ---- - - -Everyone can appreciate fancy, animated buttons - but often times they come with a performance cost: *JavaScript*. Luckily for us, we can create our very own shiny, animated buttons with pure CSS. - -## The Demo - -![Four buttons that shine when hovered](/public/images/shiny-buttons.png) - -[Live CodePen Example](https://codepen.io/bradleytaunt/pen/oNBQevj) - -## The HTML - -Nothing fancy going on here, just a set of `ahref` elements with specific `button` classes added: - - - Green Button - Blue Button - Orange Button - Purple Button - - -## The CSS - -First we set the default base styling for all the buttons. We also place the inner text into `span` elements (I will explain why in a little bit): - - - .button { - background: white; - border: 1px solid #a5b1c2; - border-radius: 6px; - box-shadow: 0 4px 8px rgba(0,0,0,0.1); - color: #111111; - display: inline-block; - margin: 1rem auto; - min-width: 180px; - overflow: hidden; - padding: 15px 30px; - position: relative; - text-align: center; - text-decoration: none; - transition: .3s ease-in-out all; - } - .button span { - position: relative; - z-index: 2; - } - - -Now we need to create our *shiny* element that will pass across the button on `hover` or `focus`. For this object we will use the `before` pseudo element: - - - .button:before { - background: linear-gradient(transparent 0%, rgba(255,255,255,0.6) 50%, transparent 100%); - content:''; - height: 200%; - position: absolute; - right: calc(100% + 20px); - top: -55%; - transform: rotate(-70deg); - transition: .6s ease-in-out right; - width: 80px; - z-index: 0; - } - - -Next, we tell the `before` element to swipe across the main `.button` parent element when the user hovers or focuses on it. Remember placing our inner content into a `span` element? That insures that our shiny/swipe element doesn't position itself *over* the text, but instead flows under it: - - - .button:hover:before { - right: -100%; - } - /* Extra visual styling for buttons on hover - optional */ - .button:hover, button:focus { - box-shadow: 0 8px 12px rgba(0,0,0,0.1), inset 0 10px 30px rgba(255,255,255,0.3), inset 0 2px 2px rgba(255,255,255,0.2); - color: white; - } - - -All that's left is adding some visual flare to each individual button - in this case background-color and border-color: - - - .button.green:hover, button.green:focus { background: #20bf6b; border-color: #20bf6b; } - .button.blue:hover, button.blue:focus { background: #0984e3; border-color: #0984e3; } - .button.orange:hover, button.orange:focus { background: #ff793f; border-color: #ff793f; } - .button.purple:hover, button.purple:focus { background: #6c5ce7; border-color: #6c5ce7; } - - -## Browser Support - -These buttons work across all browsers flawlessly. See the details [on the caniuse report itself](https://caniuse.com/css-gencontent). - -## The Live CodePen - -You can find the live demo embedded at the top of this post, or [directly on CodePen here](https://codepen.io/bradleytaunt/pen/oNBQevj). -- cgit v1.2.3-54-g00ecf