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 & 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"> · 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"> · 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.