Skip to content

docs(gi): add the marketing package for GI and myPolitics - #132

Open
gieniek-ai wants to merge 4 commits into
gi-org-pl:mainfrom
gieniek-ai:gi/marketing-package
Open

gieniek-ai wants to merge 4 commits into
gi-org-pl:mainfrom
gieniek-ai:gi/marketing-package

Conversation

@gieniek-ai

@gieniek-ai gieniek-ai commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Round 2 (2e65ca5)

After review by the president: "remove the website link from the GI logo templates", "in the avatars use a pure #000 background, as the brand book says", myPolitics "change nothing".

  • The "gi.org.pl" line is gone from the GI covers (Facebook, LinkedIn, YouTube, Discord banner), the default link preview and the link preview template (HTML and SVG); the logo stands alone, centred. In the GI e-mail signature the logo itself now links to gi.org.pl.
  • GI avatars (master and all platform exports) are flat #000000, no glow; the logomark is still 1/2 of the circle.
  • The GI link preview example and the GI preview sheets are re-rendered; the README is updated.
  • No myPolitics file changed (29 files, all under marketing-package/gi/ and the README).

Round 3 (194184b)

Correction from the president: the avatar rule is half of the avatar's width, not height.

  • GI and myPolitics avatars (all exports) now have the logomark 540 px wide on 1080 px; measured on every PNG, sign width / image width is 0.498 to 0.500, centred. Backgrounds unchanged.
  • The rule is worded as a width in the GI and myPolitics usage pages and in the package README. The myPolitics brand book PDF still says height and needs the same fix by its owner.
  • Avatar preview sheets re-rendered.

What this adds

A marketing package (pakiet marketingowy) for the social channels of the foundation and of myPolitics, in gi/docs/visual-identity/marketing-package/, with gi/ and mypolitics/ subfolders of the same shape:

  • avatar/ - a square master (SVG and 1080 x 1080 PNG) with the logomark width at 1/2 of the avatar width, centred, and one PNG per platform: Facebook, Instagram, LinkedIn, YouTube, X (myPolitics only), GitHub organisation, Discord server icon, Luma, Tally. myPolitics has a colour and a universal blue master.
  • cover/ - SVG master and PNG for the Facebook cover, LinkedIn page cover, YouTube banner, X header (myPolitics only), Discord server banner and Discord invite background. The primary logo sits alone in the middle.
  • og/ - a default link preview (1200 x 630) and a title template: an HTML page that sets the title in Poppins Bold and saves a JPG or PNG in the browser, the same layout as SVG with a text element for Figma or Inkscape, and examples made with the template.
  • email/ - the signature logo (on white and on black, at 2x) and an HTML signature snippet with {{NAME}} and {{ROLE}} placeholders.
  • previews/ - sheets for checking, not for upload: the circular crop at real sizes, the safe areas drawn over each cover, the covers on a 390 px phone, the signature.
  • README.md - what each file is for, where it goes, which variant and why, the official sizes with links and the date they were checked, how to set up the signature, and who uploads.
  • A row in gi/docs/visual-identity/README.md and a link in mypolitics/docs/visual-identity/README.md (an absolute GitHub link, because gi/ is not part of the site).

Sizes (checked 2026-10-18 on the platforms' help pages)

Platform Profile picture Cover or banner Safe area kept
Facebook Page 320 x 320 1920 x 1080 (16:9 on computers, 2.4:1 on phones) Logo inside the 2.4:1 and 851 x 315 bands; the profile picture overlaps about 40 px at the bottom left on phones
Instagram 320 x 320 (no size on the Help Centre; the Facebook Page size) - -
LinkedIn Page 400 x 400 1512 x 256 Page logo at the bottom left; no published phone crop, the logo fits in the middle 1024 px
YouTube 800 x 800 (renders at 98 x 98) 2560 x 1440 1546 x 423 in the middle (1235 x 338 at the 2048 x 1152 minimum)
X (myPolitics) 400 x 400 1500 x 500 Up to 60 px cut at the top and the bottom
GitHub organisation 500 x 500 - -
Discord 512 x 512 (no size on the help pages) Banner 960 x 540; invite background 1920 x 1080 Top 48 px under the server name; no logo on the invite background, as Discord recommends
Luma 512 x 512 (no size on the help pages) - -
Tally 200 x 200 - -
Link preview - 1200 x 630 (1.91:1) 64 px margins; the default picture also survives a centred square thumbnail, a title picture does not; the JPG from the template stays under WhatsApp's 300 KB

Decisions

  • Location. One package in the gi project, as asked, with a subfolder per brand. The mypolitics/assets/ rule for images is for files shown on the myPolitics site, and nothing here is.
  • Logos are nested byte for byte. Each SVG master holds the logo file's content unchanged inside an <svg> that only sets x, y, width and height. There is no type in the SVG masters.
  • Background. Black (flat #000000 for the GI avatars) with the two radial gradients of the slide template (prez-header.svg), scaled to each format: brand red for GI at 2x the template's opacity, universal blue #0092B8 for myPolitics at 3x. At the template's own 4% and 5% the glow cannot be seen on a phone.
  • myPolitics families. Colour (quiz) for the accounts people visit for quizzes - Facebook, Instagram, YouTube, X, GitHub, Discord, Luma, Tally - and the default link preview. Universal blue for LinkedIn, the e-mail signature and a link-preview variant for data and press. All on black, the best background for both families; nothing on #003642.
  • Optical centring. The centre of mass of both logomarks, measured on a render, is within 0.5% of the centre of the box, so the box is centred.
  • Lossless PNG for anything with the glow. A 256-colour palette banded the gradient visibly on the large covers, so those are optimised but lossless (largest: the myPolitics YouTube banner, 730 KB; the limit is 6 MB). The package is 8.2 MB in all; the e-mail logos and preview sheets use a palette.
  • E-mail logo positive on white. Most mail is read on white, and a transparent PNG with #231F20 lettering disappears in dark mode. The dark file is there for a dark signature.

Pictures

All taken on commit 6ad59bd, rendered with headless Chromium; they are the preview sheets committed in the package. The later commit e8f9ebe changes no picture.

GI avatar - circular crop at 196, 98, 40 and 32 px on light and dark interfaces:

GI avatar circular crop

GI covers on a 390 px phone, with the profile picture in place:

GI covers on a phone

GI link preview made with the template:

GI link preview example

myPolitics covers on a 390 px phone:

myPolitics covers on a phone

Seven more: the safe-area sheets, the myPolitics avatars and link previews, both signatures

GI covers with each platform's safe areas drawn over them:

GI cover safe areas

myPolitics covers with the safe areas:

myPolitics cover safe areas

myPolitics avatars, colour and universal blue:

myPolitics avatar circular crop

myPolitics link previews, colour and universal blue:

myPolitics link preview example myPolitics link preview example, universal blue

E-mail signatures with example text:

GI e-mail signature myPolitics e-mail signature

Verification

On commit 6ad59bd, locally, unless a line says otherwise:

  • Every SVG master and both HTML templates contain the content of their logo file byte for byte (a script compared each nested logo with all 22 source files); the two invite backgrounds have no logo by design.
  • Every PNG has the size in the tables (read from the PNG header), and each was looked at, including the circular crops at 32-196 px and the phone crops.
  • The link preview template, opened from disk in Chromium: with Polish titles it sets Poppins with the right letters, wraps to at most three lines, keeps one-letter words with the next word, refuses an over-long title, and saves files (JPG 54-78 KB; PNG 533-595 KB, for which the page warns about WhatsApp). No console errors.
  • On e8f9ebe (after the review): with Google Fonts blocked, both templates keep the save buttons off and show the offline note; with the fonts reachable, a JPG with a Polish title saves. The README's square-crop paragraph was checked against the logo positions (GI default 352-848, myPolitics 356-844, inside 285-915).
  • mkdocs build could not be run locally (Python crashes on this machine); the CI build check of the site passed on e8f9ebe. The only change under mypolitics/ is one paragraph with an absolute link.
  • Nothing was uploaded to any platform.

Open points

  • Codex re-review pending. Codex reviewed 6ad59bd (two findings, both fixed in e8f9ebe and answered in the threads). The @codex review for e8f9ebe got "usage limits reached", so the fix commit is not reviewed yet; ask again when the quota is back. Blocks nothing in the files.
  • Approximate crops. LinkedIn's phone crop and the size of the profile pictures drawn over covers on phones are not published; the sheets mark them as approximate. Worth one look on a real phone after the first upload. Blocks nothing.
  • X for GI. gi.org.pl links no X account, so there is no GI X header. If there is an account, it needs a 1500 x 500 header from the same master. Blocks nothing.
  • myPolitics YouTube and GitHub family. Both use the colour family. If the channel is mostly media and the organisation mostly data, the universal blue master is ready. Needs your word only if you disagree.
  • Signature logo hosting. The snippet needs the logo at a public address; the package does not choose one (the website's media library or the raw file in this repository both work). Blocks setting up signatures.
  • Discord. The myPolitics site links to the same Discord server as gi.org.pl, so the GI icon and banner apply there; the banner needs Boost Level 2 and the invite background Level 1.

🤖 Generated by Gieniek with Claude Code

Avatars, covers and banners, link previews and e-mail signatures for
the social channels of the foundation and of myPolitics, made from the
logo files without changes, with a README giving each platform's
official size and safe area as checked on 2026-10-18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-20T18:02:04.211644Z 194184b Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6ad59bd90e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

ctx.fillStyle = ACCENT;
ctx.fillText(label, PAD, firstBaseline - size * 0.72 - 28);
}
const fontOk = document.fonts.check('700 64px Poppins');

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject exports when Poppins is absent

When this file is opened offline, the Google stylesheet is unavailable, and Poppins is not installed locally, no Poppins face is registered: both document.fonts.load(...) calls resolve with an empty list, while FontFaceSet.check(...) is true when there is no matching face. Consequently fontOk enables both buttons and the canvas silently uses Arial, contrary to the package's offline warning; the identical myPolitics template needs to require a returned Poppins face (and handle a rejected load) before exporting.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Right - with the stylesheet blocked, document.fonts.load resolves to an empty list and nothing stopped the export. Fixed in e8f9ebe for both templates: Poppins counts as loaded only when both loads (bold for the title, medium for the label) return a face, and a rejected load counts as none. Checked in Chromium with fonts.googleapis.com and fonts.gstatic.com blocked: both buttons stay off and the page shows the offline note; with the fonts reachable they are on and a JPG with a Polish title saves.

| `*-og-template.svg` | The same layout with the title as a text element, for Figma or Inkscape. It needs Poppins installed |
| `*-og-example*.png` | Examples made with the HTML template |

The template needs an internet connection to load Poppins from Google Fonts; without it the save buttons stay off and the page says why. Prefer the JPG: WhatsApp does not show previews larger than 300 KB, and the PNG from the template is usually larger than that. Keep the title and the logo away from the edges as the template does - a few apps crop the picture to a square in the middle.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Put OG content inside the documented square crop

In the apps described here that center-crop a 1200 × 630 image to a square, only x=285–915 survives, but the HTML templates place the logo at x=64–328 for GI and x=64–357 for myPolitics, and start the title at x=64. Those previews therefore remove most of the brand mark and the beginning of the title despite this guidance saying the template keeps them safe; provide a center-square-safe layout or reposition the fixed content.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Right about the fact: the sentence claimed the template keeps the logo and title inside a centred square, and it does not. Changed the text, not the layout, in e8f9ebe: a square-safe title would have to fit in 630 px and be much smaller in the full 1.91:1 preview that Facebook, LinkedIn, X and Discord show. The README now says which part survives a centred square (x 285 to 915), that the default picture keeps its whole logo there (GI 352-848, myPolitics 356-844), that a title picture does not, and to use the default picture for links that mostly travel as thumbnails.

The link preview templates now count Poppins as loaded only when the
font load returns a face, so offline they no longer save a picture set
in a fallback typeface. The README states which part of a 1200 x 630
picture survives a centred square thumbnail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gieniek-ai

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

…he avatars flat black

- Remove "gi.org.pl" from the GI covers (Facebook, LinkedIn, YouTube, Discord banner), the default link preview and the link preview template (HTML and SVG); the logo now stands alone, centred.
- In the GI e-mail signature the logo links to gi.org.pl instead of the separate address line.
- GI avatars (master and every platform export): pure #000000 background, no glow; the logomark stays at 1/2 of the circle.
- Re-render the GI link preview example and the GI preview sheets; update the README.
- No myPolitics file changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gieniek-ai

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2e65ca5249

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


<label>Label above the title (optional)<input id="label" maxlength="40" placeholder="e.g. Wydarzenie"></label>
<label>Title<textarea id="title" maxlength="140">Tytuł strony</textarea></label>
<div class="buttons"><button id="savejpg" type="button">Save JPG</button><button id="save" type="button" class="secondary">Save PNG (lossless, larger)</button></div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep save buttons disabled during async rendering

When either standalone template is opened on a slow Google Fonts connection, or an edit triggers a new font subset fetch, these buttons remain enabled while draw() awaits the font loads and image decode, so clicking them exports the blank or previous canvas before Poppins and the current text have been validated. The fresh evidence in the current code is that neither button is initially disabled, and draw() only updates .disabled after every await; disable them in the markup and at the start of each render, then re-enable only after the current render succeeds.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Valid, but not part of this round: the save buttons behave the same in the myPolitics template (shared generator), and the president asked for no change to any myPolitics file. Fixing only the GI template would make the two diverge. I will fix both templates together in a follow-up once the myPolitics freeze is lifted.

The brand book rule is about the width of the logomark, not its height. Re-render all GI and myPolitics avatar masters and exports with the logomark 540 px wide on 1080 px, and the preview sheets that show avatars. State the rule as a width in the GI and myPolitics usage pages and in the marketing package README. Backgrounds are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gieniek-ai

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

This branch has not been deployed

No deployments
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.

1 participant