Skip to content

slides: add PR sidebar tour deck (10 slides, animated pointer)#6

Open
ShmuelMax100 wants to merge 1 commit intomainfrom
feature/slide-pr-sidebar-anatomy
Open

slides: add PR sidebar tour deck (10 slides, animated pointer)#6
ShmuelMax100 wants to merge 1 commit intomainfrom
feature/slide-pr-sidebar-anatomy

Conversation

@ShmuelMax100
Copy link
Copy Markdown
Owner

@ShmuelMax100 ShmuelMax100 commented May 2, 2026

What

A standalone 10-slide deck (resources/presentation/github-pr-tour.pptx) that walks through every section of a GitHub Pull Request page — Conversation, Commits, Checks, Files changed, Reviewers, Assignees, Labels, Projects, Milestone, Development.

Mirrors the visual pattern from the SecuriThings workshop deck slides 5-22: full-bleed PR screenshot, dark #0D1117 background, animated finger emoji pointing at one UI element per slide, bottom caption strip with the section name in orange and a one-line description.

Files

  • resources/presentation/github-pr-tour.pptx — the rendered 10-slide deck
  • resources/presentation/build_pr_tour.py — the builder (python-pptx + raw XML for shadow + 16:9 layout)
  • resources/presentation/github-pr-ui.png — the 1920x920 PR screenshot used as the full-bleed image on every slide

How to use

Drop the slides into your workshop deck after the repo-tour section, or present standalone.

Mirrors the SecuriThings-deck tour pattern (slides 5-22): full-bleed PR screenshot, animated finger pointing at one section per slide, bottom caption strip with section name + one-line description.

Slides cover: Conversation, Commits, Checks, Files changed, Reviewers, Assignees, Labels, Projects, Milestone, Development.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ShmuelMax100 ShmuelMax100 force-pushed the feature/slide-pr-sidebar-anatomy branch from 45e9e8c to 834d2bf Compare May 2, 2026 21:51
@ShmuelMax100 ShmuelMax100 changed the title slides: add slide 14 — anatomy of a PR sidebar (with annotated screenshot) slides: add PR sidebar tour deck (10 slides, animated pointer) May 2, 2026
@ShmuelMax100 ShmuelMax100 requested a review from Copilot May 3, 2026 13:23
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new presentation asset and generator for a 10-slide GitHub PR UI tour, intended to mirror the styling of the existing workshop deck and highlight key PR tabs/sidebar sections.

Changes:

  • Adds a new Python builder that generates a dedicated github-pr-tour.pptx deck from a static PR screenshot.
  • Adds the source screenshot used as the shared full-bleed visual across all slides.
  • Produces a rendered PowerPoint deck covering PR tabs and sidebar metadata sections.

Reviewed changes

Copilot reviewed 1 out of 3 changed files in this pull request and generated 4 comments.

File Description
resources/presentation/build_pr_tour.py New generator script for the PR-tour deck, including slide layout, pointer placement, and caption rendering.
resources/presentation/github-pr-ui.png Source screenshot used as the visual base for every slide.
resources/presentation/github-pr-tour.pptx Rendered deck output referenced in PR metadata; binary content was not included in the provided diff context, so it could not be directly inspected.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +124 to +154
def add_emoji(slide, x: int, y: int, glyph: str = "👆") -> None:
"""Add an emoji textbox with soft drop-shadow at the given EMU position."""
tx = slide.shapes.add_textbox(Emu(x), Emu(y), Emu(EMOJI_W), Emu(EMOJI_H))
tf = tx.text_frame
tf.margin_left = Emu(0)
tf.margin_right = Emu(0)
tf.margin_top = Emu(0)
tf.margin_bottom = Emu(0)
p = tf.paragraphs[0]
from pptx.enum.text import PP_ALIGN
p.alignment = PP_ALIGN.CENTER
run = p.add_run()
run.text = glyph
run.font.name = "Segoe UI Emoji"
run.font.size = Pt(EMOJI_FONT_PT)
run.font.color.rgb = RGBColor(0x00, 0x00, 0x00)

bodyPr = tf._txBody.find(qn("a:bodyPr"))
bodyPr.set("anchor", "ctr")

spPr = tx._element.find(qn("p:spPr"))
for el in spPr.findall(qn("a:effectLst")):
spPr.remove(el)
effect_xml = (
f'<a:effectLst xmlns:a="{A_NS}">'
f' <a:outerShdw blurRad="76200" dist="25400" dir="5400000" algn="bl" rotWithShape="0">'
f' <a:srgbClr val="000000"><a:alpha val="70000"/></a:srgbClr>'
f' </a:outerShdw>'
f'</a:effectLst>'
)
spPr.append(etree.fromstring(effect_xml))
Comment on lines +44 to +50
# Source image dimensions in pixels (the cropped PR screenshot)
SRC_PX_W = 1920
SRC_PX_H = 920

# EMU per pixel in the placed image
PX2EMU_X = IMG_W / SRC_PX_W # 4762.5
PX2EMU_Y = IMG_H / SRC_PX_H # 4780.7
Comment on lines +221 to +222
for name, desc, glyph, kind, a, b in TOUR:
build_slide(prs, name, desc, glyph, kind, a, b)
GitHub-Workshop-SecuriThings.pptx):
- dark #0D1117 background
- full-bleed top image (PR page screenshot, 10" x 4.81")
- 👆 emoji (Segoe UI Emoji, 44pt, soft shadow) anchored under the target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants