Skip to content

Commit ce36724

Browse files
add apps
1 parent f0eb85c commit ce36724

10 files changed

Lines changed: 727 additions & 90 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules
2+
mods_store

index.html

Lines changed: 121 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,117 @@
688688
transform: scale(0.8);
689689
/* Scale down iframes on very small screens */
690690
}
691+
692+
}
693+
694+
/* App Grid */
695+
.app-grid {
696+
display: grid;
697+
grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
698+
gap: 2rem;
699+
margin-top: 2rem;
700+
}
701+
702+
.app-card {
703+
background: rgba(255, 255, 255, 0.05);
704+
border-radius: 1rem;
705+
overflow: hidden;
706+
display: flex;
707+
flex-direction: column;
708+
border: 1px solid rgba(255, 255, 255, 0.1);
709+
transition: transform 0.3s ease, box-shadow 0.3s ease;
710+
}
711+
712+
.app-card:hover {
713+
transform: translateY(-5px);
714+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
715+
border-color: rgba(255, 255, 255, 0.2);
716+
}
717+
718+
.app-header {
719+
padding: 1rem;
720+
background: rgba(0, 0, 0, 0.2);
721+
display: flex;
722+
justify-content: space-between;
723+
align-items: center;
724+
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
725+
}
726+
727+
.app-title {
728+
margin: 0;
729+
font-size: 1.1rem;
730+
font-weight: 700;
731+
}
732+
733+
.app-author {
734+
font-size: 0.8rem;
735+
color: var(--cp-text);
736+
}
737+
738+
.app-body {
739+
display: flex;
740+
padding: 1rem;
741+
gap: 1.5rem;
742+
flex: 1;
743+
}
744+
745+
.app-image {
746+
width: 240px;
747+
height: 396px;
748+
/* Ratio close to 320x528 approx 0.75 scale */
749+
background-size: cover;
750+
background-position: center;
751+
border-radius: 2px;
752+
flex-shrink: 0;
753+
background-color: #333;
754+
}
755+
756+
.app-details {
757+
flex: 1;
758+
display: flex;
759+
flex-direction: column;
760+
}
761+
762+
.app-description {
763+
font-size: 0.9rem;
764+
color: var(--cp-text);
765+
margin-bottom: 1rem;
766+
flex: 1;
767+
display: -webkit-box;
768+
-webkit-line-clamp: 14;
769+
line-clamp: 14;
770+
-webkit-box-orient: vertical;
771+
overflow: hidden;
772+
}
773+
774+
.app-actions {
775+
display: flex;
776+
gap: 0.5rem;
777+
flex-wrap: wrap;
778+
}
779+
780+
.app-btn {
781+
padding: 0.5rem 1rem;
782+
font-size: 0.8rem;
783+
text-align: center;
784+
flex: 1;
785+
min-width: 80px;
786+
}
787+
788+
@media (max-width: 600px) {
789+
.app-grid {
790+
grid-template-columns: 1fr;
791+
}
792+
793+
.app-body {
794+
flex-direction: column;
795+
}
796+
797+
.app-image {
798+
width: 100%;
799+
height: 300px;
800+
background-position: top center;
801+
}
691802
}
692803
</style>
693804
<script src="https://analytics.ahrefs.com/analytics.js" data-key="Kb2nywKkyR+dD+Av2GmerQ" async></script>
@@ -707,6 +818,7 @@ <h1>ClassPad with <span class="python-text">Python</span> 🐍</h1>
707818
<div class="hero-buttons">
708819
<a href="#download" class="btn btn-primary">Get It Now!</a>
709820
<a href="#learn-more" class="btn btn-secondary">Learn More</a>
821+
<a href="store/" class="btn btn-secondary">Apps</a>
710822
</div>
711823
</div>
712824
<div class="hero-image">
@@ -884,6 +996,7 @@ <h2 class="section-title">Games & Apps</h2>
884996
<p class="section-subtitle">An expanding ecosystem of Python-powered experiences</p>
885997
</div>
886998
<div class="features-grid">
999+
<!-- Classic Games -->
8871000
<div class="feature-card">
8881001
<div class="feature-icon">
8891002
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -899,8 +1012,10 @@ <h2 class="section-title">Games & Apps</h2>
8991012
<h3 class="feature-title">Classic Games</h3>
9001013
<p class="feature-description">Enjoy Python ports of timeless classics like Snake, optimized for the
9011014
ClassPad's screen and controls.</p>
1015+
<a href="store/index.html?type=classic" class="feature-link">Browse Classic Games →</a>
9021016
</div>
9031017

1018+
<!-- Educational Tools -->
9041019
<div class="feature-card">
9051020
<div class="feature-icon">
9061021
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -914,36 +1029,26 @@ <h3 class="feature-title">Classic Games</h3>
9141029
<h3 class="feature-title">Educational Tools</h3>
9151030
<p class="feature-description">Powerful math and science applications that uses Python's
9161031
computational capabilities for advanced calculations and visualizations.</p>
1032+
<a href="store/index.html?type=education" class="feature-link">Browse Education Apps →</a>
9171033
</div>
9181034

1035+
<!-- App Store -->
9191036
<div class="feature-card">
9201037
<div class="feature-icon">
9211038
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
9221039
<path d="M20 7L12 3L4 7M20 7L12 11M20 7V17L12 21M12 11L4 7M12 11V21M4 7V17L12 21"
9231040
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
9241041
</svg>
9251042
</div>
926-
<h3 class="feature-title">Coming Soon: App Store</h3>
927-
<p class="feature-description">An official ClassPad Python App Store is launching soon, making it
928-
easier than ever to discover and install new programs.</p>
1043+
<h3 class="feature-title">App Store</h3>
1044+
<p class="feature-description">Discover and install new programs from our official App Store
1045+
repository.</p>
1046+
<a href="store/index.html" class="feature-link">Browse All Apps →</a>
9291047
</div>
9301048
</div>
9311049
</div>
9321050
</section>
9331051

934-
<!-- Apps Table Section -->
935-
<section class="section dark-section">
936-
<div class="container">
937-
<div class="section-header">
938-
<h2 class="section-title">Available Apps & Games</h2>
939-
<p class="section-subtitle">Explore the growing collection of Python applications</p>
940-
</div>
941-
<div id="apps-container">
942-
<div class="loading">Loading apps...</div>
943-
</div>
944-
</div>
945-
</section>
946-
9471052
<!-- Wiki Section -->
9481053
<section class="section dark-section">
9491054
<div class="container">
@@ -1069,80 +1174,6 @@ <h2 class="cta-title">Need Help?</h2>
10691174
window.location.href = '/python/install-guide?version=' + version;
10701175
}, 500);
10711176
}
1072-
1073-
document.addEventListener('DOMContentLoaded', function () {
1074-
fetch('apps.json') // Adjust path if hosted elsewhere
1075-
.then(response => {
1076-
if (!response.ok) {
1077-
throw new Error('Failed to load app data');
1078-
}
1079-
return response.json();
1080-
})
1081-
.then(data => {
1082-
renderAppsTable(data);
1083-
})
1084-
.catch(error => {
1085-
console.error('Error loading app data:', error);
1086-
const container = document.getElementById('apps-container');
1087-
container.innerHTML = '<div class="loading">Failed to load apps.</div>';
1088-
});
1089-
});
1090-
1091-
function renderAppsTable(apps) {
1092-
const container = document.getElementById('apps-container');
1093-
1094-
if (apps.length === 0) {
1095-
container.innerHTML = '<div class="loading">No apps available yet. Check back soon!</div>';
1096-
return;
1097-
}
1098-
1099-
let tableHTML = `
1100-
<table class="apps-table">
1101-
<thead>
1102-
<tr>
1103-
<th>Name</th>
1104-
<th>Author</th>
1105-
<th>Release Date</th>
1106-
<th>Description</th>
1107-
<th>Installation</th>
1108-
<th>Download</th>
1109-
</tr>
1110-
</thead>
1111-
<tbody>
1112-
`;
1113-
1114-
// Add placeholder for app store
1115-
tableHTML += `
1116-
<tr>
1117-
<td>Store (Coming Soon)</td>
1118-
<td>ClassPad.Dev Team</td>
1119-
<td>TBD</td>
1120-
<td>Browse and install apps to your ClassPad</td>
1121-
<td>N/A</td>
1122-
<td><a href="/app-store">Learn More</a></td>
1123-
</tr>
1124-
`;
1125-
1126-
apps.forEach(app => {
1127-
tableHTML += `
1128-
<tr>
1129-
<td>${app.name}</td>
1130-
<td>${app.author}</td>
1131-
<td>${app.releaseDate}</td>
1132-
<td>${app.description}</td>
1133-
<td><a href="${app.installation}">Guide</a></td>
1134-
<td><a href="${app.download}">Download</a></td>
1135-
</tr>
1136-
`;
1137-
});
1138-
1139-
tableHTML += `
1140-
</tbody>
1141-
</table>
1142-
`;
1143-
1144-
container.innerHTML = tableHTML;
1145-
}
11461177
</script>
11471178

11481179
</body>
6.33 KB
Loading
1.57 KB
Loading
3.29 KB
Loading

store/images/Templar/cover.png

6.66 KB
Loading
10.2 KB
Loading
12 KB
Loading

0 commit comments

Comments
 (0)