Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
4e856d6
added polyfill back
timea-solid Sep 29, 2025
b0ae6b8
Merge branch 'newFace' into newStyle
timea-solid Sep 29, 2025
1ff7668
added css loaders, added html5 and ARIA, separate css files
timea-solid Oct 1, 2025
2fbe654
aligned buttons
timea-solid Oct 2, 2025
83aed14
add dev to lint
timea-solid Oct 2, 2025
5dab4e7
will use separate config for dev for linting
timea-solid Oct 2, 2025
79b4b77
fixed jest tests
timea-solid Oct 3, 2025
311b4cc
stuff with name
timea-solid Oct 3, 2025
186008f
improved some alignments
timea-solid Oct 3, 2025
3436b8d
rearanged QRcode and updated test
timea-solid Oct 3, 2025
38e446a
improving the button
timea-solid Oct 3, 2025
4e17ccd
moved qr code into profile card
timea-solid Oct 3, 2025
212cfa8
improve CV
timea-solid Oct 3, 2025
ce9cdc6
consolidated styles
timea-solid Oct 6, 2025
d33b9fc
fix tests
timea-solid Oct 6, 2025
7c17da9
social account color changed
timea-solid Oct 6, 2025
4d3822f
improved accessibilty
timea-solid Oct 6, 2025
f3484a0
improved usage of imports
timea-solid Oct 8, 2025
c6a0a54
reverted to commonsJS
timea-solid Oct 8, 2025
9e5fe25
removed old configs
timea-solid Oct 8, 2025
7393042
merge
timea-solid Oct 8, 2025
61bec75
Merge branch 'newStyle' of https://github.com/SolidOS/profile-pane in…
timea-solid Nov 7, 2025
92049f1
merge main
timea-solid Nov 7, 2025
1d314fa
merge newFace branch
timea-solid Nov 19, 2025
218c3cb
dedicated version name
timea-solid Nov 19, 2025
fea54d8
added prepare to be able to install from branch
timea-solid Nov 20, 2025
c4c002d
remove duplicate builds, strengthen typecheck in presenter
timea-solid Nov 20, 2025
ace31f1
fixed test, removed console logs, better dependencies
timea-solid Nov 20, 2025
9320374
build only once on PR push
timea-solid Nov 20, 2025
fff2121
better typecheck like in CI
timea-solid Nov 20, 2025
951ce3e
added dep installs before publish
timea-solid Nov 20, 2025
aad1b18
babel build for ES modules now
timea-solid Nov 22, 2025
6d02616
remove prepare as build step
timea-solid Nov 24, 2025
02a19ac
we don't check libs for types
timea-solid Nov 24, 2025
f153532
make jest work with ESM
timea-solid Nov 24, 2025
6857c6a
make profile-pane a commonjs
timea-solid Nov 24, 2025
57ef15e
added css to lib
timea-solid Nov 24, 2025
4ac4b4a
fixed global style usage
timea-solid Nov 24, 2025
4ab2e81
added webpack for prod
timea-solid Nov 24, 2025
6a7c0ea
changed entry
timea-solid Nov 24, 2025
c66ac62
added lit back in bundle
timea-solid Nov 24, 2025
a1f2789
trying to make shadowDOM work
timea-solid Nov 26, 2025
4e73afc
fixed shadow dom tests
timea-solid Dec 7, 2025
bca880a
merge main
timea-solid Dec 8, 2025
aecc85c
push new build
timea-solid Dec 8, 2025
297cfd4
make sure to release also the css
timea-solid Dec 8, 2025
1435cf2
switched main
timea-solid Dec 8, 2025
aa7d280
added babel back for deai
timea-solid Dec 8, 2025
3e01a34
build with webpack, no babel inline
timea-solid Dec 9, 2025
7a02169
merge main
timea-solid Dec 9, 2025
a76f9cc
distribute esm and cjs as well now
timea-solid Dec 9, 2025
356f110
no tree shaking
timea-solid Dec 9, 2025
dec2d47
ESM and renames
timea-solid Dec 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions CSS_CUSTOM_PROPERTIES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# CSS Custom Properties Reference

This document lists all CSS custom properties (variables) available in the Profile Pane web components library, along with usage and extension examples.

## Available Custom Properties

| Variable Name | Default Value | Description |
|---------------------------|----------------------|---------------------------------------------|
| --primary-color | #7C4DFF | Main accent color |
| --secondary-color | #0077B6 | Secondary accent color |
| --background-color | #FFFFFF | Main background color |
| --card-bg | #FFFFFF | Card background color |
| --section-bg | #F5F5F5 | Section background color |
| --card-internal-bg | transparent | Internal card background |
| --card-frame-bg | #f8f9fa | Card frame background |
| --card-frame-border | #e0e0e0 | Card frame border color |
| --text-color | #1A1A1A | Main text color |
| --text-secondary | #666 | Secondary text color |
| --text-muted | #444 | Muted text color |
| --border-light | #eee | Light border color |
| --accent-color | #FFD600 | Accent color (yellow) |
| --error-color | #B00020 | Error color |
| --success-color | #00C853 | Success color |
| --border-radius | 1rem | Default border radius |
| --border-radius-sm | 0.5rem | Small border radius |
| --box-shadow | 0 2px 8px rgba(...) | Default box shadow |
| --box-shadow-sm | 0 1px 4px rgba(...) | Small box shadow |
| --spacing-xs | 0.5rem | Extra small spacing |
| --spacing-sm | 0.75rem | Small spacing |
| --spacing-md | 1rem | Medium spacing |
| --spacing-lg | 1.5rem | Large spacing |
| --spacing-xl | 2rem | Extra large spacing |
| --font-family | 'Inter', ... | Font family |
| --font-size-base | 1rem | Base font size |
| --font-size-sm | 0.875rem | Small font size |
| --font-size-lg | 1.125rem | Large font size |
| --font-size-xl | 1.25rem | Extra large font size |
| --line-height-base | 1.5 | Base line height |
| --line-height-tight | 1.4 | Tight line height |
| --line-height-loose | 1.6 | Loose line height |
| --letter-spacing-wide | 0.025em | Wide letter spacing |
| --min-font-size | 14px | Minimum font size for accessibility |
| --min-line-height | 1.4 | Minimum line height for accessibility |
| --min-touch-target | 44px | Minimum touch target size |
| --focus-ring-width | 2px | Focus ring width |
| --focus-indicator-width | 3px | Focus indicator width |
| --animation-duration | 0.2s | Animation duration |
| --animation-duration-slow | 0.3s | Slow animation duration |
| --high-contrast-ratio | 7:1 | High contrast ratio (WCAG AAA) |

> **Note:** This is a partial list. For a full list, see `src/styles/global.css`.

## How to Override a Variable

You can override any custom property on a specific component or globally. For example, to change the card frame background and primary color for all `stuff-card` components:

```css
stuff-card {
--card-frame-bg: #ffeedd;
--primary-color: #ff6600;
}
```

Or, to set a global theme for all components:

```css
:root {
--primary-color: #0055aa;
--card-frame-bg: #f0f0f0;
}
```

## Example: Extending a Variable

Suppose you want to make the card border color more prominent:

```css
stuff-card {
--card-frame-border: #ff0000;
}
```

This will update the border color for all `stuff-card` elements.

## Where to Find and Add Variables

- All variables are defined in `src/styles/global.css` under `:host, :root`.
- You can add new variables to this file and use them in your component styles.

---

For more details, see the main README or the source code in `src/styles/global.css`.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ SolidOS pane that displays a personal profile page
- lit-html
- Jest
- Eslint
- SolidOS

### Tests

Expand Down
2 changes: 1 addition & 1 deletion __mocks__/fileMock.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@

module.exports = '// mocked-file-content';
module.exports = {};

20 changes: 6 additions & 14 deletions babel.config.mjs
Original file line number Diff line number Diff line change
@@ -1,19 +1,11 @@
export default {
presets: [
['@babel/preset-env', {
targets: {
browsers: ['> 1%', 'last 3 versions', 'not dead']
}
}],
['@babel/preset-env', {
targets: {
browsers: ['> 1%', 'last 3 versions', 'not dead']
},
modules: 'commonjs'
}],
'@babel/preset-typescript'
],
plugins: [
[
'babel-plugin-inline-import', {
extensions: [
'.ttl'
]
}
]
]
}
5 changes: 5 additions & 0 deletions declarations.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
declare module '*.css' {
const content: string;
export default content;
}

declare module '*.ttl' {
const content: string;
export default content;
Expand Down
5 changes: 2 additions & 3 deletions dev/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
<meta charset="utf-8"/>
<title>profile-pane dev server</title>
<!-- Load dependencies as globals -->
<script src="/node_modules/rdflib/dist/rdflib.min.js"></script>
<script src="/node_modules/solid-logic/dist/solid-logic.js"></script>
<script src="/node_modules/solid-ui/dist/solid-ui.js"></script>

<script>
// Ensure the globals are available with the right names
if (typeof $rdf !== 'undefined') window.$rdf = $rdf;
Expand Down Expand Up @@ -53,5 +51,6 @@ <h1>pane under development</h1>
<div id="loginBanner"></div>
<div class="banner"></div>
<div id="app">Rendering...</div>

</body>
</html>
18 changes: 14 additions & 4 deletions dev/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import '../src/styles/global.css'
import { sym } from 'rdflib'
import { default as pane } from '../src'
import { context, fetcher } from './context'
Expand All @@ -7,16 +8,22 @@ import * as UI from 'solid-ui'
const loginBanner = document.getElementById('loginBanner')
const webId = document.getElementById('webId')

loginBanner.appendChild(UI.login.loginStatusBox(document, null, {}))
if (loginBanner) {
loginBanner.appendChild(UI.login.loginStatusBox(document, null, {}))
}

async function finishLogin() {
await authSession.handleIncomingRedirect()
const session = authSession
if (session.info.isLoggedIn) {
// Update the page with the status.
webId.innerHTML = 'Logged in as: ' + authn.currentUser().uri
if (webId) {
webId.innerHTML = 'Logged in as: ' + authn.currentUser().uri
}
} else {
webId.innerHTML = ''
if (webId) {
webId.innerHTML = ''
}
}
}

Expand All @@ -26,5 +33,8 @@ const webIdToShow = 'https://testingsolidos.solidcommunity.net/profile/card#me'

fetcher.load(webIdToShow).then(() => {
const app = pane.render(sym(webIdToShow), context)
document.getElementById('app').replaceWith(app)
const appEl = document.getElementById('app');
if (appEl) {
appEl.replaceWith(app);
}
})
14 changes: 6 additions & 8 deletions jest.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,16 @@ export default {
customExportConditions: ['node'],
},
transform: {
'^.+\\.[tj]sx?$': ['babel-jest', { configFile: './babel.config.mjs' }],
'^.+\\.(ts|js)$': ['babel-jest'],
},
setupFilesAfterEnv: ["./test/helpers/jest.setup.ts"],
transformIgnorePatterns: ["/node_modules/(?!lit-html).+\\.js"],
testPathIgnorePatterns: ['/node_modules/', '/lib/'],
moduleNameMapper: {
'^[./a-zA-Z0-9$_-]+\\.ttl$': '<rootDir>/__mocks__/fileMock.js', // '\\.ttl$'
},
roots: ['<rootDir>/src', '<rootDir>/test', '<rootDir>/__mocks__'],
moduleNameMapper: {
'^[./a-zA-Z0-9$_-]+\\.css$': '<rootDir>/__mocks__/fileMock.js',
'^[./a-zA-Z0-9$_-]+\\.ttl$': '<rootDir>/__mocks__/fileMock.js',
'^SolidLogic$': 'solid-logic',
'^\\$rdf$': 'rdflib'
}
}

},
roots: ['<rootDir>/src', '<rootDir>/test', '<rootDir>/__mocks__'],
}
Loading