- Bump version in package.json to 1.3.0 - Add new properties for field mapping in DynamicPollWebPart.manifest.json - Enhance DynamicPollWebPart.ts to support dynamic field mapping for polls and answers - Implement field loading and default application logic in PollDataService.ts - Update PollTypes.ts to include new interfaces for field mapping - Modify DynamicPollCollection.tsx to display configurable web part title - Update styles in DynamicPoll.module.scss for improved UI - Add localization strings for new properties in en-us.js and de-de.js - Update tests to reflect changes in data structure and functionality - Validate project structure and ensure all new features are accounted for
101 lines
4.6 KiB
SCSS
101 lines
4.6 KiB
SCSS
@import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss';
|
|
|
|
.webPart { color: "[theme: neutralPrimary, default: #323130]"; font-family: "Segoe UI", "Segoe UI Web (West European)", sans-serif; }
|
|
.webPartHeading { font-size: 24px; font-weight: 300; line-height: 32px; margin: 0 0 14px; }
|
|
|
|
.poll {
|
|
background: "[theme: white, default: #ffffff]";
|
|
box-sizing: border-box;
|
|
color: "[theme: neutralPrimary, default: #323130]";
|
|
font-family: "Segoe UI", "Segoe UI Web (West European)", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;
|
|
font-size: 14px;
|
|
padding: 20px;
|
|
width: 100%;
|
|
}
|
|
.question { font-size: 22px; font-weight: 600; line-height: 1.3; margin: 0 0 16px; }
|
|
.options { border: 0; margin: 0; padding: 0; }
|
|
.option {
|
|
align-items: center;
|
|
border-bottom: 1px solid "[theme: neutralLight, default: #edebe9]";
|
|
cursor: pointer;
|
|
display: flex;
|
|
gap: 10px;
|
|
min-height: 40px;
|
|
padding: 4px 8px;
|
|
}
|
|
.option:hover { background: "[theme: neutralLighter, default: #f3f2f1]"; }
|
|
.option input { height: 16px; margin: 0; width: 16px; }
|
|
.voteButton {
|
|
background: "[theme: themePrimary, default: #0078d4]";
|
|
border: 1px solid #edebe9;
|
|
color: "[theme: white, default: #ffffff]";
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-weight: 600;
|
|
margin-top: 16px;
|
|
min-height: 32px;
|
|
padding: 6px 20px;
|
|
}
|
|
.voteButton:hover { background: "[theme: themeDark, default: #005a9e]"; }
|
|
.voteButton:focus { outline: 2px solid "[theme: neutralPrimary, default: #323130]"; outline-offset: 2px; }
|
|
.voteButton:disabled { cursor: default; opacity: .6; }
|
|
.thanks { background: "[theme: themeLighterAlt, default: #eff6fc]"; margin-bottom: 16px; padding: 10px 12px; }
|
|
.error { color: "[theme: errorText, default: #a80000]"; margin-top: 10px; }
|
|
.results { margin-top: 20px; }
|
|
.resultsHeading { font-size: 18px; font-weight: 600; margin: 0 0 12px; }
|
|
.result { margin-bottom: 12px; }
|
|
.resultHeader { display: flex; gap: 12px; justify-content: space-between; margin-bottom: 4px; }
|
|
.track { background: "[theme: neutralLighter, default: #f3f2f1]"; height: 10px; overflow: hidden; width: 100%; }
|
|
.bar { background: "[theme: themePrimary, default: #0078d4]"; height: 100%; min-width: 0; transition: width 180ms ease; }
|
|
.bar1 { background: #498205; }
|
|
.bar2 { background: #8764b8; }
|
|
.bar3 { background: #ca5010; }
|
|
.bar4 { background: #038387; }
|
|
.bar0 { background: "[theme: themePrimary, default: #0078d4]"; }
|
|
.status,
|
|
.errorStatus {
|
|
border: 1px solid "[theme: neutralLight, default: #edebe9]";
|
|
color: "[theme: neutralPrimary, default: #323130]";
|
|
font-family: "Segoe UI", "Segoe UI Web (West European)", sans-serif;
|
|
padding: 16px;
|
|
}
|
|
.errorStatus { border-color: "[theme: errorText, default: #a80000]"; color: "[theme: errorText, default: #a80000]"; }
|
|
.visuallyHidden {
|
|
clip: rect(0 0 0 0);
|
|
clip-path: inset(50%);
|
|
height: 1px;
|
|
overflow: hidden;
|
|
position: absolute;
|
|
white-space: nowrap;
|
|
width: 1px;
|
|
}
|
|
.collection { width: 100%; }
|
|
.accordionItem { border-bottom: 1px solid "[theme: neutralLight, default: #edebe9]"; }
|
|
.accordionHeader {
|
|
align-items: center;
|
|
background: "[theme: white, default: #ffffff]";
|
|
border: 0;
|
|
color: "[theme: neutralPrimary, default: #323130]";
|
|
cursor: pointer;
|
|
display: flex;
|
|
font: inherit;
|
|
font-weight: 600;
|
|
justify-content: space-between;
|
|
min-height: 44px;
|
|
padding: 8px 12px;
|
|
text-align: left;
|
|
width: 100%;
|
|
}
|
|
.accordionHeader:hover { background: "[theme: neutralLighter, default: #f3f2f1]"; }
|
|
.accordionHeader:focus { outline: 2px solid "[theme: themePrimary, default: #0078d4]"; outline-offset: -2px; }
|
|
.accordionChevron { font-family: 'FabricMDL2Icons'; font-size: 12px; margin-left: 12px; }
|
|
.accordionPanel .poll { padding-top: 14px; }
|
|
.sliderNavigation { align-items: center; display: flex; justify-content: center; margin-top: 8px; }
|
|
.sliderArrow { background: transparent; border: 0; color: "[theme: themePrimary, default: #0078d4]"; cursor: pointer; font-size: 28px; height: 32px; line-height: 24px; padding: 0; width: 36px; }
|
|
.sliderArrow:hover { background: "[theme: neutralLighter, default: #f3f2f1]"; }
|
|
.sliderArrow:focus { outline: 2px solid "[theme: themePrimary, default: #0078d4]"; }
|
|
.pagination { align-items: center; display: flex; gap: 8px; padding: 0 8px; }
|
|
.paginationDot, .paginationDotActive { background: "[theme: neutralTertiary, default: #a19f9d]"; border: 0; border-radius: 50%; cursor: pointer; height: 8px; padding: 0; width: 8px; }
|
|
.paginationDotActive { background: "[theme: themePrimary, default: #0078d4]"; height: 10px; width: 10px; }
|
|
.paginationDot:focus, .paginationDotActive:focus { outline: 2px solid "[theme: themePrimary, default: #0078d4]"; outline-offset: 2px; }
|