Hello world!
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Euismod Litora Aptent Risus Quisque Curae Sit Gravida Feugiat A Fusce Nullam Orci Consectetur Ante Laoreet Facilisi Suspendisse Hac Conubia Duis Habitasse Pulvinar Ullamcorper Nec Inceptos Ex Eu Cursus Nisi Vel Consequat Metus Ut Elit Congue Montes Dapibus Nunc Amet Molestie Nibh Imperdiet Pellentesque Vestibulum Urna Eleifend Venenatis Felis Posuere Id
Augue. Eget sed dictum ridiculus, nisi.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Nec Vulputate Leo Iaculis Sodales Pharetra Erat Arcu Habitasse Faucibus Ultricies Sapien Suscipit Massa Ante Tellus Class Nostra Mollis A Nam Sociosqu Risus Fringilla Libero Mus Amet Laoreet Aenean Accumsan Consequat Est Tempus Hendrerit Etiam Nisl Purus Tempor Curae Ad Mauris Potenti Magna Tortor Ex Conubia Malesuada Donec Egestas Himenaeos Suspendisse Lorem Lobortis Phasellus Urna Dictum Dapibus Molestie Turpis Viverra
Netus. Malesuada nec quam volutpat.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Est Arcu Urna Parturient Malesuada Luctus Sem A Libero Vivamus Quam Diam Commodo Dui Dictum Viverra Aliquet Aenean Dignissim Condimentum Auctor Nibh Suspendisse Bibendum Eros Magnis Placerat Aliquam Augue Porttitor Curabitur Et Imperdiet Lorem Etiam Ut Velit Sagittis Elementum Fusce Ultricies Metus Eleifend Iaculis Id Cras In Dolor Fringilla Sociosqu Convallis
Vestibulum urna netus. Phasellus.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Consequat Per Feugiat Pellentesque Condimentum Vehicula Fames Leo Natoque Ridiculus Tellus Class Lorem Fusce Duis Ullamcorper Penatibus Donec Convallis Senectus Fringilla Vel Risus Neque Ornare Tortor Interdum Posuere Id Dapibus Urna Fermentum Conubia Bibendum Aptent Habitant Adipiscing Ex Sodales Molestie Lacinia Est Sed Sagittis Consectetur Suscipit Quisque Dictumst Varius Habitasse Cubilia Nisi
Torquent fermentum vestibulum. Duis.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Sem Facilisi Praesent Cursus Dictum Commodo Neque In Curae Gravida Adipiscing Consectetur Diam Rhoncus Ac Posuere Aptent Ut Rutrum Potenti Phasellus Netus Justo Maximus Nullam Senectus Montes Vel Magna Ipsum Mus Penatibus Dis Cubilia Consequat Venenatis Etiam Morbi Convallis Leo Eu Fames Vestibulum Ex Dapibus Nostra Eleifend Nam Iaculis Orci Id Bibendum Lobortis Risus Arcu Est Primis Habitasse Porta
Efficitur volutpat eu fermentum, suspendisse habitant. Vitae.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Maecenas Molestie Ut Quisque Tempor Congue Ornare Consequat Habitant Eleifend Curae Porttitor Aliquet Sollicitudin Augue Ultricies Integer Dapibus Tellus Pellentesque Purus Habitasse Et Est Euismod Cursus Eget Fringilla Hendrerit Metus Urna Volutpat Mollis Odio Viverra Vehicula Sem Phasellus Dictumst Primis Magna Id Vulputate Mattis Consectetur Proin Faucibus Laoreet Gravida Nullam Dis Massa Accumsan Tortor Vestibulum Torquent
Fermentum. Faucibus. Hendrerit adipiscing duis eleifend, magna. Nec. Blandit consectetur nisl egestas, eleifend metus.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Vestibulum Eros Mollis Ipsum Nam Ultrices Scelerisque Massa Tincidunt Nulla Quam Habitant Facilisis Maecenas Sit Gravida Maximus Egestas Dictumst Tellus Nunc Magnis Ac Sodales Integer Sagittis Netus Ad Eu Interdum Tristique Vel Conubia Libero Sed Accumsan Fames Sem Dolor Cras Felis Nisl Suspendisse Senectus Blandit Purus Ornare Leo Vitae Posuere Nullam Tortor Lorem Semper
Gravida. Mus.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Interdum Maximus Gravida Senectus Fringilla A Sagittis Sit Convallis Dignissim Sociosqu Odio Tellus Semper Hendrerit Pulvinar Nunc Massa Habitant Penatibus Tempor Etiam Lobortis Laoreet Torquent Elementum Pellentesque Montes Natoque Quisque Inceptos Quis Praesent Magna Dis Dolor Faucibus Imperdiet Lacinia Egestas Vitae Nibh Justo Risus Varius Per Dapibus Himenaeos Ac Congue Accumsan Tempus Feugiat Cursus Libero Ultricies
Nec. Habitasse.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Ante Ultrices Amet Dictum Class Nam Placerat Vivamus Elit Volutpat Venenatis Magna Sem Fermentum Mauris Quam Porta Turpis Neque Mi Blandit Primis Egestas Molestie Montes Natoque Luctus Litora Fringilla Condimentum In Tortor Quisque Euismod Mattis Penatibus Ipsum Tincidunt Pretium Cubilia Auctor Semper Maximus Dignissim Suspendisse Sollicitudin Faucibus Proin Mus Risus
Eget consequat mauris varius. Himenaeos litora velit convallis, orci.
Read More
Share
Save
```
---
**12. `assets/css/main.css`:**
This will be crucial for the visual design and responsive layout.
```css
/*
Theme Name: NewsFlow Shorts
Description: Custom styles for the NewsFlow Shorts theme.
*/
/* General Body & Typography */
body {
font-family: 'Arial', sans-serif; /* Or a Google Font */
margin: 0;
padding: 0;
background-color: #f0f2f5;
color: #111;
overflow: hidden; /* Hide scrollbars, Swiper will manage scrolling */
}
/* Header */
.site-header {
background-color: var(--newsflow-shorts-header-bg-color, #ffffff);
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.header-inner {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1200px; /* Max width for content */
margin: 0 auto;
}
.site-branding {
flex-grow: 1; /* Pushes menu/search to sides */
text-align: center;
}
.site-branding .custom-logo-link img {
max-height: 40px;
width: auto;
}
.site-title {
margin: 0;
font-size: 1.5em;
}
.site-title a {
text-decoration: none;
color: #333;
}
.menu-toggle, .search-toggle {
background: none;
border: none;
cursor: pointer;
padding: 5px 10px;
}
.menu-toggle .icon-bar {
display: block;
width: 25px;
height: 3px;
background-color: #333;
margin: 5px 0;
transition: all 0.3s ease;
}
/* Off-canvas Menu */
.main-navigation {
position: fixed;
top: 0;
left: -280px; /* Hidden off-screen */
width: 250px;
height: 100%;
background-color: #333;
color: #fff;
padding-top: 60px; /* Clear space for header */
box-shadow: 2px 0 5px rgba(0,0,0,0.2);
transition: left 0.3s ease;
z-index: 99;
overflow-y: auto;
}
.main-navigation.active {
left: 0;
}
.main-navigation ul {
list-style: none;
margin: 0;
padding: 0;
}
.main-navigation ul li a {
display: block;
padding: 15px 20px;
color: #fff;
text-decoration: none;
border-bottom: 1px solid #444;
}
.main-navigation ul li a:hover {
background-color: #555;
}
/* Search Container */
.search-form-container {
position: fixed;
top: 60px; /* Below header */
right: -100%; /* Hidden off-screen */
width: 100%;
background-color: #f9f9f9;
padding: 15px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
transition: right 0.3s ease;
z-index: 98;
}
.search-form-container.active {
right: 0;
}
.search-form {
display: flex;
max-width: 600px;
margin: 0 auto;
}
.search-field {
flex-grow: 1;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px 0 0 5px;
font-size: 1em;
}
.search-submit {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 0 5px 5px 0;
cursor: pointer;
}
.ajax-search-results {
max-width: 600px;
margin: 10px auto 0;
background-color: #fff;
border: 1px solid #eee;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
list-style: none;
padding: 0;
max-height: 300px;
overflow-y: auto;
}
.ajax-search-results li a {
display: block;
padding: 10px 15px;
border-bottom: 1px solid #eee;
text-decoration: none;
color: #333;
}
.ajax-search-results li a:hover {
background-color: #f0f0f0;
}
/* Categories Carousel */
.categories-carousel {
position: fixed;
top: 60px; /* Below header */
width: 100%;
background-color: #f9f9f9;
padding: 10px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
z-index: 90;
white-space: nowrap; /* Keep items in a single line */
overflow-x: auto; /* Allow horizontal scrolling */
-webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
scrollbar-width: none; /* Hide scrollbar for Firefox */
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
}
.categories-carousel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari, Opera */
}
.categories-swiper {
width: 100%;
height: auto;
padding: 0 10px; /* Padding for the ends of the carousel */
}
.categories-swiper .swiper-wrapper {
display: flex;
justify-content: flex-start; /* Align items to the start */
align-items: center;
}
.category-item {
display: inline-block; /* For the scrollable list */
text-align: center;
margin-right: 15px; /* Spacing between categories */
flex-shrink: 0; /* Prevent items from shrinking */
width: 100px; /* Fixed width for each category item */
}
.category-link {
text-decoration: none;
color: #333;
}
.category-image {
width: 70px;
height: 70px;
border-radius: 50%;
background-color: #ccc; /* Fallback/dummy color */
background-size: cover;
background-position: center;
margin: 0 auto 5px;
border: 2px solid var(--newsflow-shorts-primary-color, #FF0000);
}
.category-title {
font-size: 0.9em;
margin: 0;
white-space: normal; /* Allow text to wrap */
word-wrap: break-word;
}
/* Main Content Area (News Shorts Container) */
.site-content {
margin-top: 120px; /* Space for header and category carousel */
height: calc(100vh - 120px); /* Fill remaining viewport height */
position: relative;
overflow: hidden; /* Hide main body scroll */
}
.news-shorts-container {
height: 100%;
width: 100%;
position: relative;
background-color: #000; /* Black background for video-like feel */
}
.news-shorts-swiper {
width: 100%;
height: 100%;
}
.news-shorts-swiper .swiper-wrapper {
flex-direction: column; /* Vertical swipe */
}
.news-short-item {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end; /* Content aligns to bottom like shorts */
align-items: center;
position: relative;
background-color: #000; /* Default background */
color: #fff;
padding-bottom: 20px; /* Space for interaction buttons */
box-sizing: border-box;
}
.news-short-item .news-short-thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.news-short-item .news-short-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.news-short-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.5) 100%); /* Gradient for text readability */
z-index: 2;
}
.news-short-content-wrapper {
position: relative;
z-index: 3;
width: 90%;
max-width: 600px;
padding: 0 20px;
box-sizing: border-box;
text-align: left;
}
.news-short-title {
font-size: 1.8em;
margin-bottom: 10px;
line-height: 1.2;
}
.news-short-excerpt {
font-size: 1em;
opacity: 0.9;
margin-bottom: 15px;
max-height: 4.5em; /* Limit height to 3 lines of 1.5em line-height */
overflow: hidden;
text-overflow: ellipsis;
}
.read-more-button {
display: inline-block;
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
padding: 8px 15px;
border-radius: 5px;
text-decoration: none;
font-size: 0.9em;
margin-top: 10px;
}
/* Horizontal Action Buttons */
.news-short-actions {
position: absolute;
bottom: 20px;
width: 100%;
display: flex;
justify-content: center;
gap: 15px; /* Space between buttons */
z-index: 4;
}
.action-button {
background: rgba(0,0,0,0.6);
border: none;
color: #fff;
padding: 10px 15px;
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9em;
transition: background-color 0.3s ease;
}
.action-button:hover {
background: rgba(0,0,0,0.8);
}
.action-button .dashicons {
font-size: 1.2em;
width: 20px;
height: 20px;
}
/* Comments Overlay/Modal */
.comments-overlay {
position: fixed;
bottom: -100%; /* Hidden off-screen */
left: 0;
width: 100%;
height: 70%; /* Takes up 70% of screen height */
background-color: #fff;
z-index: 1000; /* Above everything */
transition: bottom 0.3s ease-in-out;
box-shadow: 0 -5px 15px rgba(0,0,0,0.2);
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
flex-direction: column;
}
.comments-overlay.active {
bottom: 0;
}
.comments-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.comments-header h3 {
margin: 0;
font-size: 1.2em;
color: #333;
}
.close-comments {
background: none;
border: none;
font-size: 1.5em;
cursor: pointer;
color: #666;
}
.comments-list-container {
flex-grow: 1;
overflow-y: auto;
padding: 10px 20px;
}
/* Basic Comment Styling (will inherit from WP default, but good to override) */
.comment-list {
list-style: none;
margin: 0;
padding: 0;
}
.comment-list li {
background-color: #f9f9f9;
padding: 10px 15px;
margin-bottom: 10px;
border-radius: 5px;
}
.comment-form-container {
padding: 15px 20px;
border-top: 1px solid #eee;
background-color: #fff;
}
.comment-form-comment label, .comment-form-author label, .comment-form-email label, .comment-form-url label {
display: block;
font-size: 0.9em;
margin-bottom: 5px;
color: #555;
}
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 10px;
font-size: 0.9em;
}
.form-submit input[type="submit"] {
background-color: var(--newsflow-shorts-primary-color, #FF0000);
color: #fff;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 1em;
}
/* Loading slide */
.loading-slide {
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.header-inner {
padding: 0 10px;
}
.site-branding .custom-logo-link img {
max-height: 35px;
}
.news-short-title {
font-size: 1.5em;
}
.news-short-excerpt {
font-size: 0.9em;
}
.action-button {
padding: 8px 12px;
font-size: 0.8em;
}
}
Loading more news...
Comments