❓What is Data
Data is a collection of raw, unorganized facts.
It stores text, observations, figures, symbols, and descriptions of things etc.
Data does not carry any specific purpose and has no significance by itself.
Data is measured in terms of bits and bytes.
Bits and Bytes are basic units of information in computer storage and processing.
Data can be recorded and doesn’t have any meaning unless processed.
<div class="infographic-data">
<style>
.infographic-data {
--ink: #1a1a1a;
--ink-soft: #5c5c5c;
--paper: #ffffff;
--paper-alt: #f0ece4;
--accent: #2563eb;
--accent-soft:#e3ebfd;
--line: #ddd6c9;
--mono-font: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
--display-font: Georgia, "Times New Roman", serif;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
background: var(--paper);
color: var(--ink);
padding: 2rem 1.5rem;
box-sizing: border-box;
max-width: 100%;
}
.infographic-data[data-theme="dark"] {
--ink: #e8e6e1;
--ink-soft: #9a968c;
--paper: #121212;
--paper-alt: #1e1e26;
--accent: #5b8def;
--accent-soft:#202942;
--line: #2c313d;
}
.infographic-data * { box-sizing: border-box; }
.id-head { text-align: center; max-width: 520px; margin: 0 auto 1.5rem; }
.id-head .id-eyebrow { font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase;
color: var(--accent); font-weight: 600; }
.id-head h2 { font-family: var(--display-font); font-size: 1.8rem; margin: 0.4rem 0 0.5rem; }
.id-head p { color: var(--ink-soft); font-size: 0.92rem; margin: 0; line-height: 1.5; }
/* Orbit stage */
.id-orbit-stage { position: relative; width: 100%; max-width: 460px; aspect-ratio: 1 / 1;
margin: 0 auto; }
.id-orbit-ring { position: absolute; inset: 0; border: 1px dashed var(--line); border-radius: 50%; }
.id-orbit-ring.ring-2 { inset: 12%; }
.id-core { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
width: 108px; height: 108px; border-radius: 50%; background: var(--accent-soft);
border: 2px solid var(--accent); display: flex; align-items: center; justify-content: center;
text-align: center; z-index: 5; }
.id-core span { font-family: var(--display-font); font-weight: 700; font-size: 1.05rem;
color: var(--accent); letter-spacing: 0.02em; }
/* Each orbiter spins around the stage center via a rotating pivot, while the
label itself counter-rotates so the text stays upright and the token is clickable. */
.id-orbiter-pivot { position: absolute; inset: 0; animation: id-spin var(--dur, 30s) linear infinite; }
.id-orbiter-pivot.reverse { animation-direction: reverse; }
.id-token { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%);
animation: id-counter-spin var(--dur, 30s) linear infinite; }
.id-orbiter-pivot.reverse .id-token { animation-direction: reverse; }
.id-bubble { background: var(--paper); color: var(--ink); border: 1.5px solid var(--accent);
border-radius: 999px; padding: 0.4rem 0.85rem; font-size: 0.78rem; font-weight: 600;
cursor: pointer; white-space: nowrap; transition: background 0.15s, color 0.15s, transform 0.15s;
box-shadow: 0 1px 3px rgba(0,0,0,0.06); }
.id-bubble:hover { transform: scale(1.06); }
.id-bubble.is-open { background: var(--accent); color: var(--paper); }
@keyframes id-spin { to { transform: rotate(360deg); } }
@keyframes id-counter-spin { to { transform: translate(-50%, -50%) rotate(-360deg); } }
@media (prefers-reduced-motion: reduce) {
.id-orbiter-pivot, .id-token { animation: none; }
}
/* Detail panel below the orbit */
.id-detail-panel { max-width: 460px; margin: 1.4rem auto 0; min-height: 64px;
background: var(--paper-alt); border: 1px solid var(--line); border-radius: 6px;
padding: 0.9rem 1.1rem; text-align: center; }
.id-detail-panel .id-detail-title { font-weight: 600; font-size: 0.92rem; margin-bottom: 0.25rem; }
.id-detail-panel .id-detail-text { font-size: 0.85rem; color: var(--ink-soft); line-height: 1.45; }
.id-detail-panel.is-empty .id-detail-text { font-style: italic; }
.id-foot { text-align: center; max-width: 460px; margin: 1.6rem auto 0; font-size: 0.85rem;
color: var(--ink-soft); line-height: 1.5; }
.id-foot b { color: var(--ink); }
@media (max-width: 480px) {
.id-bubble { font-size: 0.7rem; padding: 0.32rem 0.65rem; }
.id-core { width: 86px; height: 86px; }
.id-core span { font-size: 0.88rem; }
}
</style>
<div class="id-head">
<p>Raw, unorganized facts circling with no order — meaningless until processed. Tap one.</p>
</div>
<div class="id-orbit-stage">
<div class="id-orbit-ring ring-1"></div>
<div class="id-orbit-ring ring-2"></div>
<div class="id-core"><span>DATA</span></div>
<!-- Outer ring: 4 items, slower -->
<div class="id-orbiter-pivot" style="--dur:36s;">
<div class="id-token" style="transform: translate(-50%,-50%) rotate(0deg) translateY(-50%);">
<button class="id-bubble" data-i="1">"Delhi"</button>
</div>
</div>
<div class="id-orbiter-pivot" style="--dur:36s; transform: rotate(90deg);">
<div class="id-token" style="transform: translate(-50%,-50%) rotate(0deg) translateY(-50%);">
<button class="id-bubble" data-i="2">📷 image</button>
</div>
</div>
<div class="id-orbiter-pivot" style="--dur:36s; transform: rotate(180deg);">
<div class="id-token" style="transform: translate(-50%,-50%) rotate(0deg) translateY(-50%);">
<button class="id-bubble" data-i="3">42</button>
</div>
</div>
<div class="id-orbiter-pivot" style="--dur:36s; transform: rotate(270deg);">
<div class="id-token" style="transform: translate(-50%,-50%) rotate(0deg) translateY(-50%);">
<button class="id-bubble" data-i="4">98.6°F</button>
</div>
</div>
<!-- Inner ring: 3 items, faster, reverse direction -->
<div class="id-orbiter-pivot reverse" style="--dur:22s;">
<div class="id-token" style="transform: translate(-50%,-50%) rotate(0deg) translateY(-44%);">
<button class="id-bubble" data-i="5">01010100</button>
</div>
</div>
<div class="id-orbiter-pivot reverse" style="--dur:22s; transform: rotate(120deg);">
<div class="id-token" style="transform: translate(-50%,-50%) rotate(0deg) translateY(-44%);">
<button class="id-bubble" data-i="6">★ symbol</button>
</div>
</div>
<div class="id-orbiter-pivot reverse" style="--dur:22s; transform: rotate(240deg);">
<div class="id-token" style="transform: translate(-50%,-50%) rotate(0deg) translateY(-44%);">
<button class="id-bubble" data-i="7">log entry</button>
</div>
</div>
</div>
<div class="id-detail-panel is-empty" id="id-detail-panel">
<div class="id-detail-text">Tap a piece of data to learn what it tells us.</div>
</div>
<div class="id-foot">
<b>Takeaway:</b> none of these mean anything on their own — they're just facts, floating, until they're <b>processed</b> into information.
</div>
</div>
<script>
(function () {
const wrapper = document.currentScript.closest('.infographic-data')
|| document.querySelector('.infographic-data');
const bodyAttr = document.body.getAttribute('data-darkmode');
let dark;
if (bodyAttr === 'true') {
dark = true;
} else if (bodyAttr === 'false') {
dark = false;
} else {
const match = document.cookie.match(/(?:^|;\s*)darkMode=([^;]+)/);
dark = match ? match[1] === 'true' : false;
}
if (dark) wrapper.setAttribute('data-theme', 'dark');
const facts = {
1: { title: '"Delhi" — text', text: 'A string of characters. On its own, just a label with no context.' },
2: { title: 'Image — pixels', text: 'A grid of color values. Meaningless until rendered and viewed.' },
3: { title: '42 — number', text: 'A raw figure. Could be an age, a score, or nothing at all.' },
4: { title: '98.6°F — observation', text: 'A measured reading. No source or subject attached yet.' },
5: { title: '01010100 — bits', text: 'How computers store everything — 8 bits grouped make 1 byte.' },
6: { title: '★ — symbol', text: 'A mark or icon. Carries no fixed meaning by itself.' },
7: { title: 'Log entry — record', text: 'Saved and inert. Stored, but not yet interpreted.' },
};
const panel = wrapper.querySelector('#id-detail-panel');
const bubbles = wrapper.querySelectorAll('.id-bubble');
function showFact(i) {
bubbles.forEach(b => b.classList.toggle('is-open', b.dataset.i === String(i)));
const f = facts[i];
panel.classList.remove('is-empty');
panel.innerHTML =
'<div class="id-detail-title">' + f.title + '</div>' +
'<div class="id-detail-text">' + f.text + '</div>';
}
bubbles.forEach(b => {
b.addEventListener('click', () => showFact(b.dataset.i));
});
})();
</script>.demo {
font-family: system-ui, sans-serif;
padding: 16px;
}
.demo h1 {
color: #2563eb;
margin: 0 0 8px;
}
.demo p {
color: #4b5563;
margin: 0;
}document.querySelector('.demo h1')?.addEventListener('click', () => {
alert('Hello from live preview!');
});✅ Types of Data
Numerical form
Weight, volume, cost of an item.
Descriptive, but not numerical.
Name, gender, hair color of a person.
<div class="infographic-qq">
<style>
.infographic-qq {
--ink: #1a1a1a;
--ink-soft: #5c5c5c;
--paper: #ffffff;
--paper-alt: #f0ece4;
--accent: #2563eb;
--accent-soft:#e3ebfd;
--line: #ddd6c9;
--qual: #2563eb;
--quant: #c0392b;
--qual-soft: #e3ebfd;
--quant-soft: #fbe9e7;
--mono-font: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
--display-font: Georgia, "Times New Roman", serif;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
background: var(--paper);
color: var(--ink);
padding: 2.5rem 1.5rem;
box-sizing: border-box;
max-width: 100%;
}
.infographic-qq[data-theme="dark"] {
--ink: #e8e6e1;
--ink-soft: #9a968c;
--paper: #121212;
--paper-alt: #1e1e26;
--accent: #5b8def;
--accent-soft:#202942;
--line: #2c313d;
--qual: #5b8def;
--quant: #e57373;
--qual-soft: #202942;
--quant-soft: #3a2222;
}
.infographic-qq * { box-sizing: border-box; }
.qq-head { text-align: center; max-width: 560px; margin: 0 auto 2rem; }
.qq-head .qq-eyebrow { font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase;
color: var(--accent); font-weight: 600; }
.qq-head h2 { font-family: var(--display-font); font-size: 1.85rem; margin: 0.4rem 0 0.5rem; }
.qq-head p { color: var(--ink-soft); font-size: 0.92rem; margin: 0; line-height: 1.5; }
.qq-stage { max-width: 760px; margin: 0 auto; }
/* Source + pulse rings, always centered regardless of revealed state */
.qq-source { position: relative; display: flex; flex-direction: column; align-items: center;
min-height: 110px; justify-content: center; }
.qq-pulse-ring { position: absolute; width: 92px; height: 92px; border-radius: 50%;
border: 2px solid var(--accent); opacity: 0; pointer-events: none; }
.qq-stage.is-idle .qq-pulse-ring { animation: qq-pulse 2.6s ease-out infinite; }
.qq-pulse-ring.ring-b { animation-delay: 1.3s; }
@keyframes qq-pulse {
0% { transform: scale(0.9); opacity: 0.55; }
70% { transform: scale(1.9); opacity: 0; }
100% { transform: scale(1.9); opacity: 0; }
}
.qq-source-node { position: relative; z-index: 2; width: 92px; height: 92px; border-radius: 50%;
background: var(--accent-soft); border: 2px solid var(--accent); display: flex;
align-items: center; justify-content: center; cursor: pointer; font: inherit;
transition: transform 0.15s ease; }
.qq-source-node:hover { transform: scale(1.05); }
.qq-stage.is-idle .qq-source-node { animation: qq-breathe 2.6s ease-in-out infinite; }
@keyframes qq-breathe {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.06); }
}
.qq-source-node span { font-family: var(--display-font); font-weight: 700; font-size: 0.95rem;
color: var(--accent); pointer-events: none; }
.qq-stage.is-revealed .qq-source-node { cursor: default; }
.qq-stage.is-revealed .qq-source-node:hover { transform: none; }
/* Branch lines, hidden until revealed */
.qq-branch-svg { width: 100%; display: block; max-height: 70px;
opacity: 0; transition: opacity 0.3s ease 0.15s; }
.qq-stage.is-revealed .qq-branch-svg { opacity: 1; }
.qq-branch-path { fill: none; stroke-width: 2; stroke-dasharray: 4 5; opacity: 0.55; }
.qq-branch-path.qual { stroke: var(--qual); }
.qq-branch-path.quant { stroke: var(--quant); }
/* Columns container collapses to 0 height while idle so layout doesn't reserve space */
.qq-cols-wrap { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.qq-stage.is-revealed .qq-cols-wrap { max-height: 600px; }
.qq-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; padding-top: 0.5rem; }
.qq-col-head { text-align: center; padding: 0.6rem 0.5rem; border-radius: 6px; font-weight: 700;
font-size: 1.05rem; margin-bottom: 0.9rem; }
.qq-col-head.qual { background: var(--qual-soft); color: var(--qual); }
.qq-col-head.quant { background: var(--quant-soft); color: var(--quant); }
.qq-list { display: flex; flex-direction: column; gap: 0.55rem; list-style: none; margin: 0; padding: 0; }
.qq-item { display: flex; align-items: center; gap: 0.6rem; background: var(--paper-alt);
border: 1px solid var(--line); border-left: 3px solid transparent; border-radius: 4px;
padding: 0.55rem 0.75rem; font-size: 0.88rem;
opacity: 0; transform: translateY(-26px) scale(0.85);
}
.qq-item.qual { border-left-color: var(--qual); }
.qq-item.quant { border-left-color: var(--quant); }
.qq-stage.is-revealed .qq-item {
opacity: 1; transform: translateY(0) scale(1);
transition: transform 0.55s cubic-bezier(0.22, 1.35, 0.36, 1), opacity 0.3s ease-out;
}
.qq-item .qq-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; }
.qq-item.qual .qq-dot { background: var(--qual); }
.qq-item.quant .qq-dot { background: var(--quant); }
@media (max-width: 620px) {
.qq-cols { grid-template-columns: 1fr; gap: 1.2rem; }
}
.qq-foot { text-align: center; max-width: 520px; margin: 1.4rem auto 0; font-size: 0.85rem;
color: var(--ink-soft); line-height: 1.5;
opacity: 0; transition: opacity 0.4s ease 0.5s; }
.qq-stage.is-revealed .qq-foot { opacity: 1; }
.qq-foot b { color: var(--ink); }
@media (prefers-reduced-motion: reduce) {
.infographic-qq *, .infographic-qq *::before, .infographic-qq *::after {
animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
.qq-pulse-ring { display: none; }
}
</style>
<div class="qq-head">
<div class="qq-eyebrow">Data Collection</div>
<h2>Qualitative vs Quantitative</h2>
<p>Both branch from the same source. Click <b>DATA</b> below to see how.</p>
</div>
<div class="qq-stage is-idle" id="qq-root">
<div class="qq-source">
<div class="qq-pulse-ring ring-a"></div>
<div class="qq-pulse-ring ring-b"></div>
<button class="qq-source-node" id="qq-cta"><span>DATA</span></button>
</div>
<svg class="qq-branch-svg" viewBox="0 0 760 70" preserveAspectRatio="none">
<path class="qq-branch-path qual" d="M 380 0 C 380 30, 190 20, 190 70" />
<path class="qq-branch-path quant" d="M 380 0 C 380 30, 570 20, 570 70" />
</svg>
<div class="qq-cols-wrap">
<div class="qq-cols">
<div class="qq-col">
<div class="qq-col-head qual">Qualitative</div>
<ul class="qq-list" id="qq-list-qual">
<li class="qq-item qual"><span class="qq-dot"></span>From interview sessions</li>
<li class="qq-item qual"><span class="qq-dot"></span>Focus group discussions</li>
<li class="qq-item qual"><span class="qq-dot"></span>Case studies</li>
<li class="qq-item qual"><span class="qq-dot"></span>Ethnography</li>
</ul>
</div>
<div class="qq-col">
<div class="qq-col-head quant">Quantitative</div>
<ul class="qq-list" id="qq-list-quant">
<li class="qq-item quant"><span class="qq-dot"></span>From surveys</li>
<li class="qq-item quant"><span class="qq-dot"></span>Experiments</li>
<li class="qq-item quant"><span class="qq-dot"></span>Observations</li>
<li class="qq-item quant"><span class="qq-dot"></span>Content analysis</li>
</ul>
</div>
</div>
</div>
<div class="qq-foot">
<b>Takeaway:</b> qualitative data describes <i>qualities</i> in words; quantitative data measures <i>quantities</i> in numbers.
</div>
</div>
</div>
<script>
(function () {
const wrapper = document.currentScript.closest('.infographic-qq')
|| document.querySelector('.infographic-qq');
const bodyAttr = document.body.getAttribute('data-darkmode');
let dark;
if (bodyAttr === 'true') {
dark = true;
} else if (bodyAttr === 'false') {
dark = false;
} else {
const match = document.cookie.match(/(?:^|;\s*)darkMode=([^;]+)/);
dark = match ? match[1] === 'true' : false;
}
if (dark) wrapper.setAttribute('data-theme', 'dark');
const root = wrapper.querySelector('#qq-root');
const ctaBtn = wrapper.querySelector('#qq-cta');
const qualItems = Array.from(wrapper.querySelectorAll('#qq-list-qual .qq-item'));
const quantItems = Array.from(wrapper.querySelectorAll('#qq-list-quant .qq-item'));
const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
function reveal() {
if (root.classList.contains('is-revealed')) return;
ctaBtn.disabled = true;
if (reduceMotion) {
root.classList.remove('is-idle');
root.classList.add('is-revealed');
return;
}
const stepDelay = 230;
const maxLen = Math.max(qualItems.length, quantItems.length);
for (let i = 0; i < maxLen; i++) {
const delay = 150 + i * stepDelay;
if (qualItems[i]) qualItems[i].style.transitionDelay = delay + 'ms';
if (quantItems[i]) quantItems[i].style.transitionDelay = delay + 'ms';
}
// Commit the delays in a separate frame before the class change that
// triggers the transition, so every browser picks up the per-item stagger.
requestAnimationFrame(() => {
root.classList.remove('is-idle');
root.classList.add('is-revealed');
});
}
ctaBtn.addEventListener('click', reveal);
})();
</script>.demo {
font-family: system-ui, sans-serif;
padding: 16px;
}
.demo h1 {
color: #2563eb;
margin: 0 0 8px;
}
.demo p {
color: #4b5563;
margin: 0;
}document.querySelector('.demo h1')?.addEventListener('click', () => {
alert('Hello from live preview!');
});