Not knowing the basic tech can sometimes increase the size, affect the performance and add an extra layer of complexity to the project.
This article is a heads up that you can do a lot with just vanilla HTML and a bit of CSS if you want it to look pretty.
I have collected some of the most useful HTML tags and attributes, so you can study them and use in your next project.
I also created 12 separate Codepens, so you can get a live taste and play around with the examples.
🎨 Color Picker
Often in the developer workflow you might want to access the color spectrum and be able to pick up any shade from it.
You can use <input type="color">
, which would otherwise be a time-consuming task to write from scratch.
📚 Blockquote
When writing articles you might want to highlight some of your favorites quotes.
You can use a <blockquote>
tag for that. Add some custom styling and you have a nice element that will stand out from the rest of the text.
🎵 Audio Player
Writing your own audio player from scratch can be a challenge. You can use the built-in <audio>
tag, that provides the basic functionality to play your audio files.
Also, you can listen to more of my music here.
📺 Video Player
Another multimedia you could use in your projects is video. Again, you can not just include the video link in HTML and hope that it will play.
To playback videos properly you can use built-in <video>
tag.
🔷 Accordion
Sometimes you might want to hide some content and allow user to reveal it manually (to save the space of the viewport, for example).
You can achieve the described functionality with pure HTML, thanks to <details>
tag.
📅 Date Picker
Working with dates is among the most common reasons why devs search for external libraries.
HTML provides a <input type="date">
tag, that provides a nice UI with the option to select the dates by clicking on them.
⚪ Slider
Slider is a common component to collect the user input in the specific numeric range.
You can use <input type="range">
to get a fully functional slider, where you can set the min, max and current value.
✍ Content Editor
In order to edit content you don't have to use input or textarea fields and set the default values for them.
Instead, you can use contenteditable
attribute, that allow to edit the content of the div, for example.
📷 Picture Tag
You might want to display different images on different screen sizes to improve the performance and UI/UX.
Instead of using the default <img>
tag, detect the viewport and creating a method to switch between the images, you can use built-in <picture>
tag.
⌛ Progress Bar
The <progress>
tag represents the completion progress of a task.
You can use it to display various actions, such as a download, file transfer, or installation.
🔻 Dropdown
Often you might need to collect the user input with multiple possible choices. Instead of listing all the options on the screen, you might include them into dropdown.
Using the <datalist>
tag will allow users to select options from dropdown, while also allowing to enter their own values.
💭 Tooltip
If you need to give a detailed description of something, it is always nice to include a pop up.
HTML built-in title
attribute provides that by default.
In this article we reviewed functional HTML elements that you can use while working with text, audio, images, video, etc.
Next time you need the some functionality, make sure to double check if it is not already provided by the HTML itself.
Writing has always been my passion and it gives me pleasure to help and inspire people. If you have any questions, feel free to reach out!
Connect me on Twitter, LinkedIn and GitHub!
Check out my portfolio for all projects.
Top comments (39)
Amazing bro 👑
I love create performance interfaces without scripts 👌🎉🚀🔝
Happy to help, thanks 🙏❤
The JavaScript snippet collection contains a wide variety of ES6 helper functions thanx dev.to Anti Dandruff Oil For Hair
Thanks for sharing 🙏❤
This is a solid tutorial, Madza!
Would you be interested in writing some tutorials for our companies? Happy to pay!
You can either DM me on twitter at twitter.com/AndrewPierno or fill out this little airtable form airtable.com/shrN6S3NMZ7oxRXTt.
Thanks for reading and kind words, means a lot 🙏❤
For work related topics please contact me via my email 😉👍
On it, Madza!
Thanks a lot for the kind words 🙏❤
Also nice suggestion to improve the UX 😉
Add user select property with value none, for not be able to select, to see the tooltip in mobile devices
Thanks for the reccmendation 🙏❤
Love it!!
Thank you so much 🙏❤
Thanks @madza . wondering are these components accessible?
Sure you can access them in Codepen 😉
Really nice article! I definitely prefer to use as much pure HTML as possible before attempting to import outside javascript libs. I did not know about
contenteditable
!Thanks a lot for the kind words, means a ton 🙏❤
Very informative! Thanks
Happy you liked them 🙏❤
Thanks! i didnt knew the accordion one.
You are welcome ❤🙏
Not bugs, but some notes:
Thanks for the feedback, should look into it 👍😉