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 them in your next project.
I also created 12 separate Codepens, so you can get a live taste and play around with the examples.
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.
https://codepen.io/madarsbiss/pen/vYJBqeX
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.
https://codepen.io/madarsbiss/pen/JjyPQBd
Writing your own audio player from scratch can be a challenge. You can use the built-in <audio>
tag, which provides the basic functionality to play your audio files.
Also, you can listen to more of my music here.
https://codepen.io/madarsbiss/pen/oNevrEb
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.
https://codepen.io/madarsbiss/pen/BadBgxJ
Sometimes you might want to hide some content and allow users 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.
https://codepen.io/madarsbiss/pen/zYdOVPV
Working with dates is among the most common reasons why devs search for external libraries.
HTML provides a <input type="date">
tag, which provides a nice UI with the option to select the dates by clicking on them.
https://codepen.io/madarsbiss/pen/qBXWzXE
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.
https://codepen.io/madarsbiss/pen/GRvKbXv
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 allows editing the content of the div, for example.
https://codepen.io/madarsbiss/pen/ExvYBwB
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.
https://codepen.io/madarsbiss/pen/abybomY
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.
https://codepen.io/madarsbiss/pen/oNevKdp
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 in the dropdown.
Using the <datalist>
tag will allow users to select options from dropdown, while also allowing to enter their own values.
https://codepen.io/madarsbiss/pen/eYEOwdQ
If you need to give a detailed description of something, it is always nice to include a popup.
HTML built-in title
attribute provides that by default.
https://codepen.io/madarsbiss/pen/VwzwZvE
In this article, we reviewed functional HTML elements that you can use while working with text, audio, images, video, etc.
Next time you need some functionality, make sure to double-check if it is not already provided by the HTML itself.
https://twitter.com/madzadev/status/1447623708571541506
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!
Also published on: https://dev.to/madza/12-simple-html-snippets-to-avoid-complex-libraries-3na8