PageSourceSearch

https://baoboop.com/study-guides/

html baoboop.com collected 2026-09-24 14:38:48 UTC 20,957 bytes, 723 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="UTF-8" />
5    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; base-uri 'none'; object-src 'none'; script-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self'; font-src 'self'; connect-src 'none'; media-src 'none'; frame-src 'none'; form-action 'self'; upgrade-insecure-requests" />
6    <meta name="referrer" content="strict-origin-when-cross-origin" />
7    <meta name="viewport" content="width=device-width, initial-scale=1" />
8    <meta name="theme-color" content="#fff8f4" />
9    <title>Free Cantonese PDF study guides | BaoBoop</title>
10    <meta
11      name="description"
12      content="Free printable Cantonese vocabulary guides from BaoBoop: Food & Drink and the 5,000 most common words, with jyutping, meanings, examples, notes, and tappable cross-references between entries."
13    />
14    <meta property="og:title" content="Free Cantonese PDF study guides | BaoBoop" />
15    <meta property="og:description" content="Download printable Cantonese vocabulary guides with jyutping, meanings, examples, and notes." />
16    <meta property="og:type" content="website" />
17    <meta property="og:url" content="https://baoboop.com/study-guides/" />
18    <meta property="og:image" content="https://baoboop.com/logo.png" />
19    <link rel="canonical" href="https://baoboop.com/study-guides/" />
20    <link rel="icon" type="image/png" href="/logo.png" />
21    <link rel="preload" href="/fonts/dongle-bold.woff2" as="font" type="font/woff2" crossorigin />
22    <style>
23      :root {
24        color-scheme: light;
25        --ink: #18191e;
26        --muted: #646975;
27        --line: rgba(65, 45, 36, 0.13);
28        --panel: rgba(255, 255, 255, 0.84);
29        --brand-brown: #551f0b;
30        --brand-red: #ed5249;
31        --brand-peach: #ffb48d;
32        --blue: #1459d9;
33        --shadow: 0 22px 65px rgba(56, 36, 27, 0.11);
34      }
35
36      @font-face {
37        font-family: 'Dongle';
38        src: url('/fonts/dongle-bold.woff2') format('woff2');
39        font-weight: 700;
40        font-style: normal;
41        font-display: swap;
42      }
43
44      * {
45        box-sizing: border-box;
46      }
47
48      html {
49        min-height: 100%;
50        background: #f3f6f9;
51      }
52
53      body {
54        min-height: 100%;
55        margin: 0;
56        color: var(--ink);
57        background:
58          radial-gradient(circle at 12% -4%, rgba(237, 82, 73, 0.18), transparent 28rem),
59          radial-gradient(circle at 92% 8%, rgba(20, 89, 217, 0.12), transparent 27rem),
60          linear-gradient(180deg, #fff8f4 0%, #f8fafc 42%, #eef3f7 100%);
61        font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
62        line-height: 1.5;
63      }
64
65      a {
66        color: inherit;
67      }
68
69      .page {
70        width: min(1040px, calc(100% - 32px));
71        margin: 0 auto;
72        padding: 24px 0 36px;
73      }
74
75      .topbar {
76        display: flex;
77        align-items: center;
78        justify-content: space-between;
79        gap: 20px;
80      }
81
82      .brand {
83        display: inline-flex;
84        align-items: center;
85        gap: 10px;
86        text-decoration: none;
87      }
88
89      .brand img {
90        width: 52px;
91        height: 46px;
92        object-fit: contain;
93        filter: drop-shadow(0 4px 8px rgba(55, 26, 14, 0.15));
94      }
95
96      .brand-name {
97        font-family: 'Dongle', ui-sans-serif, system-ui, sans-serif;
98        font-size: 3.1rem;
99        font-weight: 700;
100        line-height: 0.72;
101      }
102
103      .brand-name span:first-child {
104        color: var(--brand-brown);
105      }
106
107      .brand-name span:last-child {
108        color: var(--brand-red);
109      }
110
111      .back-link {
112        color: #4e535e;
113        font-size: 0.88rem;
114        font-weight: 750;
115        text-decoration: none;
116      }
117
118      .back-link:hover {
119        color: var(--blue);
120        text-decoration: underline;
121      }
122
123      .hero {
124        position: relative;
125        overflow: hidden;
126        margin-top: 24px;
127        padding: clamp(30px, 6vw, 62px);
128        border: 1px solid var(--line);
129        border-radius: 28px;
130        background: rgba(255, 255, 255, 0.78);
131        box-shadow: var(--shadow);
132      }
133
134      .hero::after {
135        content: 'å­¸';
136        position: absolute;
137        right: clamp(18px, 6vw, 68px);
138        top: 50%;
139        color: rgba(237, 82, 73, 0.075);
140        font-family: "Microsoft JhengHei", "Noto Sans CJK TC", sans-serif;
141        font-size: clamp(9rem, 22vw, 15rem);
142        font-weight: 800;
143        line-height: 1;
144        transform: translateY(-48%) rotate(4deg);
145        pointer-events: none;
146      }
147
148      .hero-copy {
149        position: relative;
150        z-index: 1;
151        max-width: 720px;
152      }
153
154      .eyebrow {
155        margin: 0 0 10px;
156        color: var(--brand-red);
157        font-size: 0.76rem;
158        font-weight: 850;
159        letter-spacing: 0.1em;
160        text-transform: uppercase;
161      }
162
163      h1 {
164        max-width: 680px;
165        margin: 0;
166        font-size: clamp(2.45rem, 7vw, 5.25rem);
167        line-height: 0.98;
168        letter-spacing: -0.052em;
169      }
170
171      .hero-lede {
172        max-width: 620px;
173        margin: 20px 0 0;
174        color: var(--muted);
175        font-size: clamp(1rem, 2.2vw, 1.18rem);
176      }
177
178      .hero-meta {
179        display: flex;
180        flex-wrap: wrap;
181        gap: 8px;
182        margin-top: 24px;
183      }
184
185      .hero-meta span {
186        padding: 7px 11px;
187        border: 1px solid rgba(85, 31, 11, 0.11);
188        border-radius: 999px;
189        background: #fff;
190        color: #595e68;
191        font-size: 0.78rem;
192        font-weight: 750;
193      }
194
195      .ai-note {
196        display: grid;
197        grid-template-columns: auto 1fr;
198        gap: 14px;
199        margin: 18px 0;
200        padding: 17px 19px;
201        border: 1px solid #f0c6c0;
202        border-radius: 18px;
203        background: rgba(255, 247, 243, 0.9);
204      }
205
206      .ai-badge {
207        align-self: start;
208        justify-self: start;
209        padding: 5px 8px;
210        border-radius: 8px;
211        background: var(--brand-red);
212        color: #fff;
213        font-size: 0.72rem;
214        font-weight: 900;
215        letter-spacing: 0.05em;
216      }
217
218      .ai-note strong {
219        display: block;
220        margin-bottom: 3px;
221        font-size: 0.94rem;
222      }
223
224      .ai-note p {
225        margin: 0;
226        color: var(--muted);
227        font-size: 0.9rem;
228      }
229
230      .guides {
231        display: grid;
232        grid-template-columns: repeat(2, minmax(0, 1fr));
233        gap: 18px;
234      }
235
236      .guide {
237        display: flex;
238        flex-direction: column;
239        min-width: 0;
240        padding: clamp(20px, 4vw, 30px);
241        border: 1px solid var(--line);
242        border-radius: 24px;
243        background: var(--panel);
244        box-shadow: 0 15px 42px rgba(56, 36, 27, 0.075);
245      }
246
247      .guide-preview {
248        position: relative;
249        display: flex;
250        align-items: flex-end;
251        min-height: 192px;
252        margin-bottom: 24px;
253        padding: 22px;
254        overflow: hidden;
255        border-radius: 18px;
256        background: linear-gradient(145deg, #fff6ee, #ffe0cf);
257      }
258
259      .guide--frequency .guide-preview {
260        background: linear-gradient(145deg, #edf4ff, #d7e6ff);
261      }
262
263      .paper {
264        position: absolute;
265        right: 32px;
266        top: 19px;
267        width: 122px;
268        height: 158px;
269        padding: 14px;
270        border-radius: 5px;
271        background: #fff;
272        box-shadow: 0 13px 28px rgba(75, 47, 34, 0.16);
273        transform: rotate(5deg);
274      }
275
276      .guide--frequency .paper {
277        transform: rotate(-4deg);
278      }
279
280      .paper::before,
281      .paper::after {
282        content: '';
283        display: block;
284        height: 4px;
285        margin-top: 8px;
286        border-radius: 99px;
287        background: #dce0e7;
288        box-shadow: 0 12px 0 #e7e9ee, 0 24px 0 #e7e9ee, 0 36px 0 #e7e9ee;
289      }
290
291      .paper::after {
292        width: 68%;
293        margin-top: 47px;
294        background: #becffa;
295        box-shadow: none;
296      }
297
298      .paper-word {
299        display: block;
300        font-family: "Microsoft JhengHei", "Noto Sans CJK TC", sans-serif;
301        font-size: 2.75rem;
302        font-weight: 800;
303        line-height: 1;
304      }
305
306      .preview-label {
307        position: relative;
308        z-index: 1;
309        max-width: 165px;
310        color: rgba(85, 31, 11, 0.78);
311        font-size: 0.78rem;
312        font-weight: 850;
313        letter-spacing: 0.05em;
314        text-transform: uppercase;
315      }
316
317      .guide--frequency .preview-label {
318        color: rgba(20, 58, 125, 0.8);
319      }
320
321      .guide-kicker {
322        margin: 0 0 5px;
323        color: var(--brand-red);
324        font-size: 0.72rem;
325        font-weight: 850;
326        letter-spacing: 0.09em;
327        text-transform: uppercase;
328      }
329
330      .guide--frequency .guide-kicker {
331        color: var(--blue);
332      }
333
334      .guide h2 {
335        margin: 0;
336        font-size: clamp(1.45rem, 3vw, 1.9rem);
337        line-height: 1.14;
338        letter-spacing: -0.025em;
339      }
340
341      .guide-description {
342        margin: 11px 0 0;
343        color: var(--muted);
344        font-size: 0.94rem;
345      }
346
347      .feature-list {
348        display: grid;
349        gap: 7px;
350        margin: 17px 0 24px;
351        padding: 0;
352        list-style: none;
353        color: #464b55;
354        font-size: 0.87rem;
355      }
356
357      .feature-list li::before {
358        content: '✓';
359        margin-right: 8px;
360        color: var(--brand-red);
361        font-weight: 900;
362      }
363
364      .guide--frequency .feature-list li::before {
365        color: var(--blue);
366      }
367
368      .actions {
369        display: flex;
370        flex-wrap: wrap;
371        gap: 9px;
372        margin-top: auto;
373      }
374
375      .button {
376        display: inline-flex;
377        align-items: center;
378        justify-content: center;
379        min-height: 43px;
380        padding: 10px 15px;
381        border: 1px solid rgba(24, 25, 30, 0.12);
382        border-radius: 12px;
383        background: #fff;
384        color: #343740;
385        font-size: 0.86rem;
386        font-weight: 800;
387        text-decoration: none;
388      }
389
390      .button--primary {
391        border-color: transparent;
392        background: var(--ink);
393        color: #fff;
394      }
395
396      .button:hover {
397        border-color: rgba(20, 89, 217, 0.45);
398        box-shadow: 0 7px 18px rgba(31, 43, 66, 0.12);
399        transform: translateY(-1px);
400      }
401
402      .button:focus-visible,
403      .back-link:focus-visible,
404      .brand:focus-visible {
405        outline: 3px solid rgba(20, 89, 217, 0.35);
406        outline-offset: 3px;
407      }
408
409      .download-size {
410        color: #888d96;
411        font-weight: 650;
412      }
413
414      .reading-tip {
415        display: grid;
416        grid-template-columns: auto 1fr;
417        gap: 18px;
418        align-items: center;
419        margin-top: 18px;
420        padding: 22px 24px;
421        border: 1px solid var(--line);
422        border-radius: 20px;
423        background: rgba(255, 255, 255, 0.65);
424      }
425
426      .tip-number {
427        color: rgba(85, 31, 11, 0.15);
428        font-family: 'Dongle', sans-serif;
429        font-size: 4.4rem;
430        font-weight: 700;
431        line-height: 0.7;
432      }
433
434      /* Dongle carries no Hanzi, so the CJK tip marker needs its own face and
435         its own metrics — Dongle's 0.7 line-height would clip a 字. */
436      .tip-number--zh {
437        font-family: "Microsoft JhengHei", "Noto Sans CJK TC", sans-serif;
438        font-size: 3rem;
439        font-weight: 800;
440        line-height: 1;
441      }
442
443      .reading-tip h2 {
444        margin: 0 0 4px;
445        font-size: 1rem;
446      }
447
448      .reading-tip p {
449        margin: 0;
450        color: var(--muted);
451        font-size: 0.88rem;
452      }
453
454      .sources {
455        margin-top: 18px;
456        padding: 22px 24px;
457        border: 1px solid var(--line);
458        border-radius: 20px;
459        background: rgba(255, 255, 255, 0.65);
460      }
461
462      .sources h2 {
463        margin: 0 0 8px;
464        font-size: 0.76rem;
465        font-weight: 850;
466        letter-spacing: 0.1em;
467        text-transform: uppercase;
468        color: var(--brand-red);
469      }
470
471      .sources p {
472        margin: 0 0 8px;
473        color: var(--muted);
474        font-size: 0.86rem;
475      }
476
477      .sources p:last-child {
478        margin-bottom: 0;
479      }
480
481      .sources a {
482        color: var(--blue);
483        font-weight: 750;
484      }
485
486      .page-footer {
487        display: flex;
488        justify-content: space-between;
489        gap: 16px;
490        margin-top: 20px;
491        padding: 0 4px;
492        color: var(--muted);
493        font-size: 0.82rem;
494      }
495
496      .page-footer a {
497        color: #424750;
498        font-weight: 750;
499        text-decoration: none;
500      }
501
502      .page-footer a:hover {
503        color: var(--blue);
504        text-decoration: underline;
505      }
506
507      @media (max-width: 760px) {
508        .guides {
509          grid-template-columns: 1fr;
510        }
511
512        .hero::after {
513          right: -20px;
514          opacity: 0.7;
515        }
516      }
517
518      @media (max-width: 520px) {
519        .page {
520          width: min(1040px, calc(100% - 20px));
521          padding-top: 14px;
522        }
523
524        .brand img {
525          width: 43px;
526          height: 39px;
527        }
528
529        .brand-name {
530          font-size: 2.65rem;
531        }
532
533        .back-link {
534          max-width: 120px;
535          text-align: right;
536        }
537
538        .hero {
539          padding: 28px 22px;
540          border-radius: 22px;
541        }
542
543        .hero::after {
544          display: none;
545        }
546
547        .ai-note,
548        .reading-tip {
549          grid-template-columns: 1fr;
550          gap: 9px;
551        }
552
553        .guide-preview {
554          min-height: 170px;
555        }
556
557        .paper {
558          right: 20px;
559          width: 108px;
560          height: 140px;
561        }
562
563        .actions {
564          display: grid;
565          grid-template-columns: 1fr;
566        }
567
568        .page-footer {
569          flex-direction: column;
570          align-items: center;
571          text-align: center;
572        }
573      }
574
575      @media (prefers-reduced-motion: no-preference) {
576        .button {
577          transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
578        }
579      }
580    </style>
581  </head>
582  <body>
583    <div class="page">
584      <header class="topbar">
585        <a class="brand" href="/" aria-label="BaoBoop home">
586          <img src="/logo.png" alt="" />
587          <span class="brand-name"><span>Bao</span><span>Boop</span></span>
588        </a>
589        <a class="back-link" href="/">← Back to flashcards</a>
590      </header>
591
592      <main>
593        <section class="hero">
594          <div class="hero-copy">
595            <p class="eyebrow">Free printable study guides</p>
596            <h1>Take your Cantonese study offline.</h1>
597            <p class="hero-lede">
598              Two practical BaoBoop references with traditional characters, jyutping,
599              meanings, usage notes, and example sentences. Open them in your PDF reader
600              or download a copy for later.
601            </p>
602            <div class="hero-meta" aria-label="Guide format details">
603              <span>Free PDFs</span>
604              <span>A4 friendly</span>
605              <span>Searchable text</span>
606              <span>Tappable characters</span>
607            </div>
608          </div>
609        </section>
610
611        <aside class="ai-note" aria-label="AI-generated notes disclaimer">
612          <span class="ai-badge" aria-hidden="true">AI</span>
613          <div>
614            <strong>The explanatory word notes in these guides are AI-generated.</strong>
615            <p>
616              They can be wrong or miss important nuance, so verify anything important
617              with a teacher or trusted dictionary. Dictionary definitions and
618              source-attributed corpus examples come from the datasets credited inside each PDF.
619            </p>
620          </div>
621        </aside>
622
623        <section class="guides" aria-label="Cantonese PDF study guides">
624          <article class="guide guide--food">
625            <div class="guide-preview" aria-hidden="true">
626              <span class="preview-label">Everyday vocabulary by category</span>
627              <span class="paper"><span class="paper-word" lang="zh-Hant">食飯</span></span>
628            </div>
629            <p class="guide-kicker">Focused collection</p>
630            <h2>Cantonese Food &amp; Drink</h2>
631            <p class="guide-description">
632              A manageable guide for meals, ordering, ingredients, drinks, and sweets—useful
633              before a restaurant visit or a trip to Hong Kong.
634            </p>
635            <ul class="feature-list">
636              <li>172 words across 11 categories</li>
637              <li>One word per page with examples</li>
638              <li>Jyutping index for quick lookup</li>
639              <li>Bookmarked by category</li>
640            </ul>
641            <div class="actions">
642              <a class="button button--primary" href="/study-guides/cantonese-food-and-drink.pdf" target="_blank" rel="noopener">Open PDF</a>
643              <a class="button" href="/study-guides/cantonese-food-and-drink.pdf" download>Download <span class="download-size">&nbsp;· 3.7 MB</span></a>
644            </div>
645          </article>
646
647          <article class="guide guide--frequency">
648            <div class="guide-preview" aria-hidden="true">
649              <span class="preview-label">Frequency-ordered reference</span>
650              <span class="paper"><span class="paper-word" lang="zh-Hant">我</span></span>
651            </div>
652            <p class="guide-kicker">Complete reference</p>
653            <h2>Top 5,000 Cantonese Words</h2>
654            <p class="guide-description">
655              A deep, frequency-ordered reference for building high-coverage vocabulary.
656              Page number and word rank stay in sync, and the Chinese itself is tappable.
657            </p>
658            <ul class="feature-list">
659              <li>5,000 common words in rank order</li>
660              <li>One word per page with examples</li>
661              <li>Tap any word to jump to its entry</li>
662              <li>Linked jyutping index at the back</li>
663            </ul>
664            <div class="actions">
665              <a class="button button--primary" href="/study-guides/cantonese-top-5000.pdf" target="_blank" rel="noopener">Open PDF</a>
666              <a class="button" href="/study-guides/cantonese-top-5000.pdf" download>Download <span class="download-size">&nbsp;· 46.9 MB</span></a>
667            </div>
668          </article>
669        </section>
670
671        <aside class="reading-tip">
672          <span class="tip-number" aria-hidden="true">#</span>
673          <div>
674            <h2>A navigation tip for the big guide</h2>
675            <p>
676              Entry 250 is on page 250. The guide’s information page is intentionally at
677              the back so frequency rank and PDF page number remain the same.
678            </p>
679          </div>
680        </aside>
681
682        <aside class="reading-tip">
683          <span class="tip-number tip-number--zh" aria-hidden="true">字</span>
684          <div>
685            <h2>Hit a character you don’t know? Tap it.</h2>
686            <p>
687              In the Top 5,000 guide, any word that has its own entry is a link to it,
688              in example sentences and in the notes alike. Linked text isn’t highlighted —
689              marking half the Chinese on every page would ruin it in print — so just tap
690              and see. Works in any PDF reader that follows internal links.
691            </p>
692          </div>
693        </aside>
694
695        <section class="sources">
696          <h2>Sources</h2>
697          <p>
698            The word list and the frequency ranking that gives every entry its page number
699            come from
700            <em>Most Common Cantonese Words (Frequency List)</em>, published as a Google Sheet:
701            <a
702              href="https://docs.google.com/spreadsheets/d/1ArxEFo46PTrDyDDhWyu3wB0epxqTyd8WBaprnwTEPm4/edit?gid=1428902047#gid=1428902047"
703              target="_blank"
704              rel="noopener"
705              >view the spreadsheet</a
706            >.
707          </p>
708          <p>
709            Additional example sentences and definitions come from Tatoeba (CC BY 2.0 FR),
710            粵典–words.hk under the Non-Commercial Open Data Licence, and CC-CANTO /
711            CC-CEDICT (CC BY-SA). Each guide credits all of these on its information page.
712          </p>
713        </section>
714      </main>
715
716      <footer class="page-footer">
717        <a href="/">Study online at baoboop.com</a>
718        <span>© BaoBoop</span>
719      </footer>
720    </div>
721  
721<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"fea9a0583852493b82d38d724e173cda","r":1,"spa":2}' crossorigin="anonymous"></script>
721
722</body>
723</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.