 
 struct OnThisDayHeaderElement: View {
     @Environment(\.colorScheme) var colorScheme
+    @Environment(\.sizeCategory) var textSize
     let widgetTitle: String
     let yearRange: String
     let monthDay: String
+
+    var doesNeedVerticalCompression: Bool {
+        return textSize == .extraExtraExtraLarge
+    }
 
     var body: some View {
         /// Custom spacing (handled by middle text element) from 10 Sept 2020 video call w/ Carolyn, the app designer.


struct OnThisDayView: View {
    @Environment(\.widgetFamily) private var widgetSize
    var entry: OnThisDayProvider.Entry

    @ViewBuilder
    var body: some View {

            case .systemLarge:
                VStack(alignment: .leading, spacing: 0) {
                    OnThisDayHeaderElement(widgetTitle: entry.onThisDayTitle, yearRange: entry.yearRange, monthDay: entry.monthDay)
                        .padding(.bottom, doesNeedVerticalCompression ? 3 : 9)
                    MainOnThisDayTopElement(monthDay: entry.monthDay, eventYear: entry.eventYear, eventYearsAgo: entry.eventYearsAgo, fullDate: entry.fullDate)
                    /// The full `MainOnThisDayElement` is not used in the large widget. We need the `Spacer` and the `eventSnippet` text to be part of the same `VStack` to render correctly. (Otherwise, the "text is so long it must be cutoff" and/or the "text is so short we need blank space at the bottom" scenario perform incorrectly.)
                    if let eventSnippet = entry.eventSnippet, let title = entry.articleTitle, let articleSnippet = entry.articleSnippet {
                        ArticleRectangleElement(eventSnippet: eventSnippet, title: title, description: articleSnippet, image: entry.articleImage, link: entry.articleURL ?? entry.contentURL)
                            .padding(.top, doesNeedVerticalCompression ? 3 : 9)
                            .layoutPriority(1.0)
                    }
                    OnThisDayAdditionalEventsElement(otherEventsText: entry.otherEventsText)
