👀 Live Preview
Modern browsers ignore native <blink>. This demo uses CSS animation to show the historical effect:
Normal: Welcome to our website.
Blinking: Your Blinking Text Here

By the end of this tutorial, you’ll understand legacy blinking text markup and how to create accessible animation effects with CSS.
How <blink> made text flash on and off in old browsers.
Why blink was never part of the official HTML specification.
Motion sensitivity, WCAG flashing limits, and reduced-motion preferences.
Use @keyframes with controlled timing and easing.
Two legacy Netscape-era presentational tags from the 1990s.
Recognize blink in old code and migrate to modern CSS.
<blink> Tag?The <blink> element was a Netscape Navigator extension that made enclosed text blink on and off. It was popular in the 1990s for sales banners and urgent alerts, but was never added to the HTML specification.
Do not use <blink> in new projects. Modern browsers ignore native blinking. Use CSS @keyframes with prefers-reduced-motion support when animation is truly needed.
Firefox removed native blink support in 2013. Other browsers never fully adopted it. Learn the tag for web history; animate text with CSS in all new work.
.alert {
animation: pulse 1.5s ease-in-out infinite;
}
@keyframes pulse {
50% { opacity: 0.4; }
}
@media (prefers-reduced-motion: reduce) {
.alert { animation: none; }
}Wrap text between opening and closing <blink> tags:
<blink>Your Blinking Text Here</blink><blink> is an inline element—it nested inside paragraphs and headings.| Topic | Code Snippet | Notes |
|---|---|---|
| Basic blink | <blink>Alert!</blink> | Not supported natively today |
| Origin | Netscape extension | Never a W3C HTML standard |
| CSS animation | animation: pulse 1.5s | Modern replacement |
| Reduced motion | @media (prefers-reduced-motion) | Disable animation for a11y |
| vs marquee | <marquee> | marquee scrolled; blink flashed |
| Tag-specific attrs | None | Global attributes only |
<blink> vs CSS AnimationCSS gives you full control over timing, easing, and accessibility that the legacy tag never offered:
| Feature | <blink> | CSS @keyframes |
|---|---|---|
| Status | Obsolete, non-standard | Valid in all modern browsers |
| Speed control | Fixed by browser | animation-duration |
| Easing | None | ease-in-out, etc. |
| Accessibility | No reduced-motion support | prefers-reduced-motion |
| Best practice | Avoid entirely | Use subtle effects sparingly |
The <blink> tag had no tag-specific attributes. Global attributes could be applied, but the element itself should not be used in modern HTML:
class / id GlobalPrefer a CSS class with animation instead of the blink tag.
<span class="pulse-alert">style InlineInline animation is possible but external CSS is cleaner and easier to maintain.
animation: pulse 1.5s infiniteThe entire <blink> element is obsolete. Use CSS animations for visual emphasis in new projects.
Historical blink patterns plus the modern CSS replacement. Native blink does not work in modern browsers—demos use CSS animation to show the historical effect.
Modern browsers ignore native <blink>. This demo uses CSS animation to show the historical effect:
Normal: Welcome to our website.
Blinking: Your Blinking Text Here
The simplest form: wrap words in <blink> to make them flash.
<p>Blinking: <blink>Your Blinking Text Here</blink></p>Developers once used <blink> for sale banners, breaking news, and urgent warnings. Today use subtle CSS emphasis or static bold text instead.
A typical 1990s pattern: blink a sale headline to grab attention.
<p>
<blink>Limited Time Offer!</blink>
Get 50% off all items today only.
</p>This is what beginners should use today. CSS gives you control over speed, easing, and accessibility via prefers-reduced-motion.
<style>
.pulse-alert {
animation: pulse-text 1.5s ease-in-out infinite;
color: #b91c1c;
font-weight: 700;
}
@keyframes pulse-text {
50% { opacity: 0.4; }
}
@media (prefers-reduced-motion: reduce) {
.pulse-alert { animation: none; }
}
</style>
<p><span class="pulse-alert">Limited Time Offer!</span> Get 50% off.</p>Blinking text creates serious accessibility problems:
Mark words that should flash on and off to grab attention.
Supporting browsers alternated text between visible and hidden at a fixed interval.
Firefox removed blink in 2013. Other browsers never fully adopted it.
Learn blink for history. Animate text with CSS and respect prefers-reduced-motion.
Modern browsers do not natively support <blink>. Text inside the tag renders as plain text. Use CSS animations for blinking effects.
Firefox removed blink in 2013. Chrome, Safari, Edge, and Opera never implemented native blinking. Text renders as static content only.
Accessibility harm and lack of standardization drove universal deprecation.
Bottom line: Do not use <blink> in new projects. Use CSS animations with prefers-reduced-motion when subtle emphasis is needed.
The <blink> tag is a relic of early web design—recognize it in old code, but never use it in new projects. CSS animations with prefers-reduced-motion give you controlled, accessible alternatives when subtle emphasis is truly needed.
@keyframes for animation effectsprefers-reduced-motion in your stylesheetsblink only to read legacy HTML<blink> in new HTML code<blink>Bookmark these before you ship — they’ll keep your UI accessible and standards-compliant.
<blink> made text flash on and off to grab attention.
Netscape extension—never part of the official HTML spec.
Status@keyframes animations replace native blink behavior.
Flashing text triggers motion sensitivity and WCAG violations.
A11yFirefox removed it in 2013; others never adopted it.
CompatibilityAlways honor prefers-reduced-motion in CSS animations.
@keyframes animations with prefers-reduced-motion media query support.blink only to understand legacy HTML.Skip obsolete blink. Practice accessible CSS animations in the Try It editor.
6 people found this page helpful