1648227600
Kicking off my new Tailwind CSS Let's Build series I decided to start with a component and what better component than a Tweet on Twitter.
Follow along in the build to see how I'll use a combination of Tailwind CSS, Twitters UI icons, and some trial and error to create a very similar experience that you see on https://twitter.com.
I'll leverage CodePen and the next.tailwindcss.com version of Tailwind CSS. I'll eventually install and configure Tailwind CSS locally instead of always leveraging a CDN but for quick prototypes and builds such as this one it makes a lot of sense to use.
<div class="max-w-xl mx-auto my-6">
<article class="border-t border-b border-gray-400 p-2 hover:bg-gray-100 flex flex-wrap items-start cursor-pointer">
<img src="https://pbs.twimg.com/profile_images/1111915116579086336/HKxtnLsO_reasonably_small.jpg" class="rounded-full w-12 h-12 mr-3" />
<div class="flex flex-wrap justify-start items-start flex-1">
<div class="flex flex-1 items-center">
<div class="flex-1 flex items-center">
<h3 class="mr-2 font-bold hover:underline">
<a href="#">Elon Musk</a>
</h3>
<span class="mr-2"><svg class="w-4 h-4" fill="#1da1f2" viewBox="0 0 24 24" aria-label="Verified account" class=""><g><path d="M22.5 12.5c0-1.58-.875-2.95-2.148-3.6.154-.435.238-.905.238-1.4 0-2.21-1.71-3.998-3.818-3.998-.47 0-.92.084-1.336.25C14.818 2.415 13.51 1.5 12 1.5s-2.816.917-3.437 2.25c-.415-.165-.866-.25-1.336-.25-2.11 0-3.818 1.79-3.818 4 0 .494.083.964.237 1.4-1.272.65-2.147 2.018-2.147 3.6 0 1.495.782 2.798 1.942 3.486-.02.17-.032.34-.032.514 0 2.21 1.708 4 3.818 4 .47 0 .92-.086 1.335-.25.62 1.334 1.926 2.25 3.437 2.25 1.512 0 2.818-.916 3.437-2.25.415.163.865.248 1.336.248 2.11 0 3.818-1.79 3.818-4 0-.174-.012-.344-.033-.513 1.158-.687 1.943-1.99 1.943-3.484zm-6.616-3.334l-4.334 6.5c-.145.217-.382.334-.625.334-.143 0-.288-.04-.416-.126l-.115-.094-2.415-2.415c-.293-.293-.293-.768 0-1.06s.768-.294 1.06 0l1.77 1.767 3.825-5.74c.23-.345.696-.436 1.04-.207.346.23.44.696.21 1.04z"></path></g></svg>
</span>
<span class="text-gray-600 text-sm mr-1">@elonmusk</span>
<span class="text-gray-600 text-sm mr-1">·</span>
<span class="text-gray-600 text-sm">Apr 7</span>
</div>
<div class="text-gray-600">
<a href="#" class="flex w-6 h-6 bg-transparent hover:bg-blue-200 rounded-full items-center justify-center hover:text-blue-600">
<svg viewBox="0 0 24 24" class="w-3 h-3 fill-current"><g><path d="M20.207 8.147c-.39-.39-1.023-.39-1.414 0L12 14.94 5.207 8.147c-.39-.39-1.023-.39-1.414 0-.39.39-.39 1.023 0 1.414l7.5 7.5c.195.196.45.294.707.294s.512-.098.707-.293l7.5-7.5c.39-.39.39-1.022 0-1.413z"></path></g></svg>
</a>
</div>
</div>
<div class="w-full">
<p class="my-1">Starhopper</p>
<div class="rounded-lg">
<img src="https://pbs.twimg.com/media/D3h0Ot3U0AAoX7j?format=jpg&name=large" class="h-64 object-cover w-full rounded-lg border">
</div>
<div class="flex items-center justify-start py-2">
<div class="text-gray-600 flex hover:text-blue-500 items-center mr-8">
<a href="#" class="w-8 h-8 hover:bg-blue-200 rounded-full flex items-center justify-center hover:text-blue-500">
<svg viewBox="0 0 24 24" class="w-5 h-5 fill-current"><g><path d="M14.046 2.242l-4.148-.01h-.002c-4.374 0-7.8 3.427-7.8 7.802 0 4.098 3.186 7.206 7.465 7.37v3.828c0 .108.044.286.12.403.142.225.384.347.632.347.138 0 .277-.038.402-.118.264-.168 6.473-4.14 8.088-5.506 1.902-1.61 3.04-3.97 3.043-6.312v-.017c-.006-4.367-3.43-7.787-7.8-7.788zm3.787 12.972c-1.134.96-4.862 3.405-6.772 4.643V16.67c0-.414-.335-.75-.75-.75h-.396c-3.66 0-6.318-2.476-6.318-5.886 0-3.534 2.768-6.302 6.3-6.302l4.147.01h.002c3.532 0 6.3 2.766 6.302 6.296-.003 1.91-.942 3.844-2.514 5.176z"></path></g></svg>
</a>
<span class="ml-1">1.5K</span>
</div>
<div class="text-gray-600 flex hover:text-green-500 items-center mr-8">
<a href="#" class="w-8 h-8 hover:bg-green-200 rounded-full flex items-center justify-center hover:text-green-500">
<svg viewBox="0 0 24 24" class="w-5 h-5 fill-current"><g><path d="M23.77 15.67c-.292-.293-.767-.293-1.06 0l-2.22 2.22V7.65c0-2.068-1.683-3.75-3.75-3.75h-5.85c-.414 0-.75.336-.75.75s.336.75.75.75h5.85c1.24 0 2.25 1.01 2.25 2.25v10.24l-2.22-2.22c-.293-.293-.768-.293-1.06 0s-.294.768 0 1.06l3.5 3.5c.145.147.337.22.53.22s.383-.072.53-.22l3.5-3.5c.294-.292.294-.767 0-1.06zm-10.66 3.28H7.26c-1.24 0-2.25-1.01-2.25-2.25V6.46l2.22 2.22c.148.147.34.22.532.22s.384-.073.53-.22c.293-.293.293-.768 0-1.06l-3.5-3.5c-.293-.294-.768-.294-1.06 0l-3.5 3.5c-.294.292-.294.767 0 1.06s.767.293 1.06 0l2.22-2.22V16.7c0 2.068 1.683 3.75 3.75 3.75h5.85c.414 0 .75-.336.75-.75s-.337-.75-.75-.75z"></path></g></svg>
</a>
<span class="ml-1">6.7K</span>
</div>
<div class="text-gray-600 flex hover:text-red-500 items-center mr-6">
<a href="#" class="w-8 h-8 hover:bg-red-200 rounded-full flex items-center justify-center hover:text-red-500">
<svg viewBox="0 0 24 24" class="w-5 h-5 fill-current"><g><path d="M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.814-1.148 2.354-2.73 4.645-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.376-7.454 13.11-10.037 13.157H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.034 11.596 8.55 11.658 1.518-.062 8.55-5.917 8.55-11.658 0-2.267-1.823-4.255-3.903-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.014-.03-1.425-2.965-3.954-2.965z"></path></g></svg>
</a>
<span class="ml-1">99.9K</span>
</div>
<div class="text-gray-600 flex hover:text-blue-500 items-center mr-6">
<a href="#" class="w-8 h-8 hover:bg-blue-200 rounded-full flex items-center justify-center hover:text-blue-500">
<svg viewBox="0 0 24 24" class="w-5 h-5 fill-current"><g><path d="M17.53 7.47l-5-5c-.293-.293-.768-.293-1.06 0l-5 5c-.294.293-.294.768 0 1.06s.767.294 1.06 0l3.72-3.72V15c0 .414.336.75.75.75s.75-.336.75-.75V4.81l3.72 3.72c.146.147.338.22.53.22s.384-.072.53-.22c.293-.293.293-.767 0-1.06z"></path><path d="M19.708 21.944H4.292C3.028 21.944 2 20.916 2 19.652V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 .437.355.792.792.792h15.416c.437 0 .792-.355.792-.792V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 1.264-1.028 2.292-2.292 2.292z"></path></g></svg>
</a>
</div>
</div>
</div>
</div>
</article>
</div>
CodePen: https://codepen.io/webcrunchblog/pen/xedQVv
1602955151
In this tutorial I would like to introduce you to one of the fastest growing and promising CSS Frameworks at the moment, Tailwind CSS. It is different from other frameworks, such as Bootstrap, because it is built on a new way of building user interfaces using a utility-first CSS classes structure, as opposed to the OOCSS structure from other frameworks.
By the end of this guide you will be able to install, configure and build a responsive hero section (live demo) using the utility-first classes from Tailwind CSS and configure the project using the recommended PostCSS powered Tailwind configuration file for better maintainability and versatility.
Here’s the table of contents for this tutorial for Tailwind CSS:
Read the full tutorial from Themesberg.
#tailwind #tailwind-css #tailwind-css-tutorial #tutorial #open-source
1626922800
Hello! For my last video of 2020, we are learning how to handle themes with CSS Variables, with a cool theme switcher from twitter. Enjoy!
Useful Links:
GitHub: https://github.com/redhwannacef/youtube/tree/master/theme-switcher
#css variables #css #tutorial #css variables - tutorial #css theme switcher
1578029098
Vue CSS frameworks are great for many reasons; code is more universally understood, web applications are easier to maintain, and prototyping becomes less of an extra step and more part of the development process.
Tailwindcss-Vue is a library of UI components for Vue.js built using the Tailwind CSS utility-first CSS framework.
Download: https://github.com/advanced-data-machines/tailwindcss-vue/archive/master.zip
Vue implementation for Zeit Style, originating from Zeit Design.
@zeit-ui/vue is a Vue implementation for zeit style, originating from Zeit Design. Lean more at GITHUB.
The design of the Zeit is concise and aesthetic feeling, this is an important reason for popular of Zeit. Now you can use them through the @zeit-ui/vue.
Download: https://github.com/zeit-ui/vue/archive/master.zip
Click on the animation to copy it to your clipboard
Demo: https://emilkowalski.github.io/css-effects-snippets/
Download: https://github.com/emilkowalski/css-effects-snippets/archive/master.zip
A fully responsive and comprehensive CSS framework with beautiful controls and simplistic structure. Cirrus is designed to be adaptable to existing themes or when starting fresh. These are the Vue Components for this CSS framework.
Demo: https://florianwoelki.github.io/vue-cirrus/#/
Download: https://github.com/FlorianWoelki/vue-cirrus/archive/master.zip
Seamless mapping of class names to CSS modules inside of Vue components.
Download: https://github.com/fjc0k/vue-css-modules/archive/master.zip
make a background grid (like graph paper) using only one background gradient property and ended up with this killer mix tape for making all kinds of background grids and patterns.
Download: https://codepen.io/jasesmith/pen/YZEYRL
CSS Rules from JS, change rules dynamically, CSSOM, css modules, auto vendor prefixer, media query for old browsers.
CSS in JS solution, create CSSOM and CSS rules from js, features:
Demo: https://cssobj.github.io/cssobj-demo/
Download: https://github.com/cssobj/cssobj/archive/master.zip
#css #vue-css #css-component #vue-css-component #vue-js
1619706360
#css #tutorial #flexbox #css tutorial
1625145420
Building a photo gallery has been a tough nut to crack for so many years. Throughout my career, I’ve used <table>
layouts, <div>
s with brittle margins and set widths, and tried my hand at flexbox
. While all of these methods have worked, none of them felt like that silver bullet solution.
Then one day, the CSS gods bestowed upon us the magical power of CSS grids. Now, making a grid-based layout is an absolute delight. And, when we use grids with Tailwind CSS, we can create beautiful, functional UIs in a fraction of the time it used to take. So, let’s hop right in and see how we can use them to make a photo gallery.
#tailwind css #css grid #css