Story Slider Feed

Story Slider Feed Component

A responsive Vue.js carousel component that displays news stories from RSS feeds.

Overview

Fetches and displays news content from XML RSS feeds in a touch-enabled carousel using Flickity 2.2.2.

Responsive Layout:

  • Mobile: Shows 1 story at a time, 1 Flickity instance
  • Medium: Shows 3 stories at once with side previews, 1 Flickity instance
  • Large: Shows 3 stories at once, 2 Flickity instances

Technical Stack

  • Vue.js
  • Flickity 2.2.2
  • Vite
  • SCSS

Image Specifications

Square (1:1 aspect ratio) images:

  • Small viewport: 350×350 pixels
  • Medium/Large viewports: 640×640 pixels

Configuration

Configure the component using data attributes on the mounting element:

<div
  id="tcu-storyslider-feed"
  data-source="path/to/feed.xml"
  data-limit="5"
  data-category=""
  data-shuffled="false"
  data-description="false"
></div>

Available Options:

  • data-source: Path to RSS feed XML (required)
  • data-limit: Number of stories to display (default: 5)
  • data-category: Filter stories by category (default: empty)
  • data-shuffled: Randomize story order (default: “false”)
  • data-description: Show story descriptions on large viewports (default: “false”)
<div class="tcu-storyslider-feed__wrapper">
    <div id="tcu-storyslider-feed" data-limit="5" data-source="https://www.tcu.edu/rss/news.xml">
        <div class="tcu-storyslider-feed__header">
            <h2 class="tcu-storyslider-feed__header-title">Student Stories</h2>
        </div>
        <div class="tcu-storyslider-feed">
            <div class="tcu-storyslider-feed__info">
                <div class="button-group">
                    <a class="button" href="/stories" id="stories-cta">See All Stories</a>
                </div>
            </div>
        </div>
    </div>
</div>

<script type="module" crossorigin="" src="https://assets.tcu.edu/js/storyslider-feed/2.0.0/storyslider.js"></script>